こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2019-03-13 21:16:04

QNo.9596553

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

最後に
c=sorted(a.items())

for k,v in c:
print(k,v)

を追加してください。

投稿日時 - 2019-03-14 09:30:21

ANo.2

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

投稿日時 - 2019-03-13 22:48:15

お礼

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

投稿日時 - 2019-03-14 08:49:59

ANo.1

s=l.replace("\n","").split("")  を
s=l.replace("\n","").split(" ")  にしたら正常終了しました。

中身は見ていません。

投稿日時 - 2019-03-13 22:25:05

あなたにオススメの質問