• 締切済み

pythonについて質問です。

2つのテキストファイルを読み込み、以下の処理を行い新しいテキストファイル(csv)に書き込みたいのですがわかる方いましたら教えてください。 (処理内容) test1.txtにしか無いキーの場合、値を2倍 test2.txtにしか無いキーの場合、値を10倍 test1とtest2の同一のキーが有る場合、値を足して4倍にする。 [test1.txt] key 値 10 1000 20 2000 30 3000 40 4000 [test2.txt] key 値 1 10 10 100 17 170 30 300 40 400 【理想結果】 key 値 1 100 10 4400 17 1700 20 4000 30 13200 40 17600 [ソース] def read2dic(p,d): ・with open(p,"r") as f: ・・for l in f: ・・・s=l.replace("\n","").split("") ・・・d[s[0]]=int(s[1]) a={} b={} read2dic("test1.txt",a) read2dic("test2.txt",b) bkeys=b.keys() for k,v in a.items(): ・if k in bkeys: ・・bv=b[k] ・・del b[k] ・・a[k]=(v+bv)*4 ・else: ・・a[k]=v*2 for k,v in b.items(): ・a[k]=v*10

みんなの回答

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.3

最後に c=sorted(a.items()) for k,v in c: print(k,v) を追加してください。

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.2

中身確認しました。 理想結果にするにはソートの処理が出来ていませんね。

noname#237123
質問者

お礼

わかりました。 理想結果のように辞書からcsvに書き込むことは可能でしょうか?

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.1

s=l.replace("\n","").split("")  を s=l.replace("\n","").split(" ")  にしたら正常終了しました。 中身は見ていません。

関連するQ&A