やりたいことは以下の通りです。(下に追記あり)
ファイル(sample-re.txt)から文字列を1行ずつ読み込み、リストに格納する。
リストに含まれる日付表現のみを抽出し、それをファイル(New_sample-number.txt)に出力する。
ファイルは読み込み、リストに格納することができましたが、日付表現を抽出し、ファイル出力ができていません。ファイルの出力自体は可能ですが、何も書かれていないファイルになってしまいます。改善点はどこでしょうか?エラーコードは何も出ていません。
import re f = open("sample-re.txt","r") a = list(f) f.close() pattern = r'(明治|大正|昭和|平成|令和)\d{1,2}年(0?[1-9]|1[0-2])月(0?[1-9]|[12][0-9]|3[01])日' print(a) for b in a: print(b.strip()) uploaded = files.upload() for fn in uploaded.keys(): print('アップロードファイル名 : "(name)" サイズ : {length} bytes' .format(name=fn, length=len(uploaded[fn]))) with open(fn, "r") as F: data = F.readlines() newFn = "New_" + fn with open(newFn, "w") as newF: files.download(newFn)
自分なりに色々と試行錯誤した結果以下のようにはなりました。
import re from google. colab import files with open("sample-re.txt",'r') as F: lines = F.readlines() i = 0 sentence =[] for l in lines: l = l.rstrip() m = re.search('¥d{4}年¥d{1,2}月¥d{1,2}日|¥d{1,2}月¥d{1,2}日|¥d{1,2}日' , l) if m: i+=1 sentence.append(m.group(0)) with open("New_sample-number.txt","w") as f: f.write(str(data)) print(i, m.group(0)) files.download("New_sample-number.txt")
しかし、以下のようなエラーが出てしまいます。
FileNotFoundError Traceback (most recent call last)
<ipython-input-6-4332fd26b0a3> in <module>()
17 print(i, m.group(0))
18
---> 19 files.download("New_sample-number.txt")
/usr/local/lib/python3.7/dist-packages/google/colab/files.py in download(filename)
141 raise OSError(msg)
142 else:
--> 143 raise FileNotFoundError(msg) # pylint: disable=undefined-variable
144
145 comm_manager = _IPython.get_ipython().kernel.comm_manager
FileNotFoundError: Cannot find file: New_sample-number.txt
何をどうすれば解決に至るのかがわかりません。どうかご教授願います。