teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

書式の改善

2020/11/28 19:42

投稿

katakata12
katakata12

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,30 @@
1
- 以下のような文字列が記載されたテキストファイルがあります.![![イメージ説明](5e563b4003aedbf2f8b4c8a903d2dcab.png)](deeb1a9d50abea33008ea7263a974079.png)
1
+ Pythonでテキストファイルから指定の範囲内の文字列だけを抽出し表示するプログラムを作っています.
2
2
 
3
+ 実現したいこと
4
+ ![イメージ説明](c3e82dc9cbad68d3613f4f489d988f4a.png)
3
- のファイルから指定範囲内の文字列だけを抽出し表示する方法を教えていただきたいです.例えば各行の8列目から17列目までの数字列を抽出し
5
+ 上図テキストファイルの各行の8列目から17列目までの数字列を抽出し
4
6
  549129236
5
7
  549149216
6
8
    :
9
+ と表示させたいと考えています.
10
+ 下記のプログラムを実行しても何も表示されませんでした.原因が分かる方がいましたらご教授いただけないでしょうか.
7
11
 
12
+ ```Python3.7
13
+ import re
14
+ filepath = 'file.txt'
15
+ pattern_prev = "{'ts': "
16
+ pattern_next = ", 's'"
17
+
18
+ def extract_text_in_file(filepath, pattern_prev, pattern_next):
8
- と表示させるのにはどうすればよいのでしょうか?
19
+ extracted_text_array = []
20
+ pattern = pattern_prev + '(.*)' + pattern_next
21
+ with open(filepath) as f:
22
+ lines = f.readlines()
23
+ for line in lines:
24
+ tmp_extracted_text_array = re.findall(pattern, line)
25
+ extracted_text_array.extend(tmp_extracted_text_array)
26
+
27
+ return extracted_text_array
28
+ print(extracted_text)
29
+
30
+ ```