実現したいこと
- 行頭に「リスト内にある都道府県名」がある行に追記し、新しいテキストファイル(test-new.txt)を作りたい
前提
テキストファイルを読み込み、行頭に都道府県名があった場合に、その行を「都道府県:都道府県名」と書き直し、行頭に都道府県名がない場合はそのまま元の行を書き込んで新しいファイルを作りたい
発生している問題
pythonや正規表現の初学者で、該当のソースコードでは二重に繰り返してしまうのですが、どうしても出来ず助言をいただけたら幸いです。
該当のソースコード
python3
1import re 2import sys 3 4pref_list = ['北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県','茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県','新潟県','富山県','石川県','福井県','山梨県','長野県','岐阜県','静岡県','愛知県','三重県','滋賀県','京都府','大阪府','兵庫県','奈良県','和歌山県','鳥取県','島根県','岡山県','広島県','山口県','徳島県','香川県','愛媛県','高知県','福岡県','佐賀県','長崎県','熊本県','大分県','宮崎県','鹿児島県','沖縄県'] 5 6linechange = "" 7f = open("test.txt", 'r',encoding="utf-8") 8 9new_file_name = "test-new.txt" 10 11outfile = open(new_file_name, "w") 12 13 14for line in f: 15 for pref in pref_list: 16 #行頭にpref_listの県があった場合はlinechangeを書き込む 17 if "r'^"+ pref +"'" in line: 18 linechange = "都道府県:"+pref 19 outfile.write(linechange) 20 21 #行頭にpref_listの県がなかった場合はそのままlineを書き込む 22 else: 23 #print("行頭"+pref+"ない") 24 outfile.write(line) 25 26f.close() 27outfile.close() 28
test.txt
1あいうえお 2かきくけこ 3青森県 4 5サシスセソ 6たちつてと青森県 7なにぬね青森県の
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/16 09:09