【実現したいこと】
'sample.log'にあるデータ(以下参照)を一行ずつ読み込み、
その中の特定文字(下のコードの場合は'group1'や'group2'の部分)と、
ディレクトリ階層を組み合わせてファイルパスを生成
生成したファイルパスでファイルをopenして最終行のデータだけを取り出したい
【参照】
1,田中,Hokkaido,p-hokkaido,group1,
2,山本,Aomori,p-Aomori,group2,
python
1f = open('sample.log', 'r') 2for area_line in f: 3 line = area_line.rstrip() 4 l = area_line.split(",") 5 area_name = l[1] 6 area_word = l[2] 7 area_cate = l[4] 8 9 DIR = "/etc/DATA/" 10#ファイルパス生成 11 file_path = glob.glob(DIR + area_cate + '_3' + '*.log') 12#行をカウント 13 line_counts = sum(1 for line in codecsopen(file_path, 'r')) 14 #print(line_counts) 15 16#最終行を指定して抽出 17 target_line = linecache.getline(file_path, int(line_counts)) 18 tpline = target_line.strip() 19 #print(tpline )
上のような処理を実行すると以下のようなエラーが出ます。
Traceback (most recent call last):
File "./27_test.py", line 68, in <module>
line_counts = sum(1 for line in codecsopen(file_path, 'r'))
NameError: name 'codecsopen' is not defined
文字コード関連はまだ知識が浅くpython上でどう取り扱ってあげればいいかがわかりません。
コードの問題点がわかる方がいらっしゃいましたらアドバイスいただけると幸いです。
以上、よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。