前提・実現したいこと
フォルダ内の特定の文字が入ったファイルに対して中身を処理し、処理した内容を書き込むというプログラムを作っています。1つのファイルに対しては並び変えることができ、書き込みも成功したのですが、この前pythonを始めたばかりでfor文の使い方もあっているかわからず、複数ファイルに対して実行するプログラムをなかなか書くことができず苦戦しております。
例)
test1.txt
"りんご"
"120"
"10"
"ばなな"
"140"
"2"
test2.txt
"みかん"
"160"
"40"
"ぶどう"
"300"
"3"
というようなtxtファイルがあり、みかんが入っているファイルに対して
[["みかん","160","40"],["ぶどう","300","3"]]のように3行ごとにリストのリストに加え、各リストの3つ目の数字が小さい順に並び変えたものを作り、次のように書きこみたい。
narabikae.txt
"ぶどう"
"みかん"
1つのファイルに対して行ったプログラムは次の通りです。
python
1f = open('test.txt',encoding="utf-8-sig") 2data1 = f.read() 3f.close() 4 5lines1 = data1.split('\n') 6print(lines1) 7 8i = 0 9list1 = [] 10list2 = [] 11 12i = 0 13 14for line in lines1: 15 16 if i%3 == 0: 17 list1.append(lines1[i]) 18 if i%3 == 1: 19 list1.append(int(lines1[i])) 20 if i%3 == 2: 21 list1.append(int(lines1[i])) 22 list2.append(list1) 23 24 list1 = [] 25 i += 1 26 print(line) 27print(list2) 28 29from operator import itemgetter 30 31list2.sort(key=itemgetter(2)) 32print(format(list2)) 33 34f = open('narabikae.txt','w') 35 36j = 0 37 38for j in range(len(list2)): 39 40 f.write(list2[j][0]) 41 f.write('\n') 42 43 44f.close() 45 46
発生している問題・エラーメッセージ
該当のソースコード
ソースコード
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
質問文を編集してコードブロックを適用してください
お返事ありがとうございます。このサイトを使わせていただくのは初めてなのでうまく使い方が分かっておりません、コードブロックを適用とはどうすればよいのでしょうか。すみません。
『みかん』が一行目に書かれているとは限らず、四行目、七行目、... にある場合もあるのでしょうか。
お返事ありがとうございます。例ではみかんは1行目に来ておりますが、内容が何十行にもなるファイルの処理も考えていますのでその場合もございます。
『みかん』がtext2.txt、text3.txtにあった場合、それぞれnarabikae2.txt、narabikae3.txtを作るのでしょうか。
お返事ありがとうございます。はい、そのようなものを考えております。
回答2件
あなたの回答
tips
プレビュー