2つのファイルがあります。ソースファイルには1つのID(1行に1つのID)の列が1つしかありません。 2番目のcsv
ファイルにはIDと追加情報が含まれています。 file2
のすべてのレコードに対してfile1
の各IDをチェックし、一致するレコードがある場合は一致する行(file1
)とfile2
の対応する情報を印刷します。2つのcsvファイル間のループは最初のマッハで停止します
ファイルは次のようになります。
出典:
0234906006000
0234765306000
0231316005000
0234906006000
0212134006000
0125667806000
3334906006000
1778986006000
0239906006000
鉱山:私は結果を得るが、私はすべての一致を得ることはありません
import csv
source = csv.reader(open("denver_source.csv"))
mine = csv.reader(open("denver_mine.csv"))
output = {}
for line in source:
print(line[0])
for xline in mine:
if line[0] not in xline: continue
output[line[0]] = xline
print(xline)
print("Result", output)
、初回のみ:
02349-34-010-000,Adam
05125-07-033-000,Michael
05172-04-042-000,Debora
8071-33-001-000,Matt
2349-38-007, 2349-38-011, 2349-38-012,Ken
0234906006000,Roger
3334906006000,Hummels
0231316005000,Don
0501401028000,Gregg
私のコードは次のようになります一致:
0234906006000
['0501401028000', 'Gregg']
0234765306000
['0501401028000', 'Gregg']
0231316005000
['0501401028000', 'Gregg']
0234906006000
['0501401028000', 'Gregg']
0212134006000
['0501401028000', 'Gregg']
0125667806000
['0501401028000', 'Gregg']
3334906006000
['0501401028000', 'Gregg']
1778986006000
['0501401028000', 'Gregg']
0239906006000
['0501401028000', 'Gregg']
Result: {'0234906006000': ['0234906006000', 'Roger']}
2番目のファイルでループを正しく続行できない箇所を理解できたら助かりますか?これが前に投稿されたことをお詫びしますが、私はより複雑な例しか見つけませんでした。
入力いただきありがとうございます。私は前に試したことが分かっていますが、csv.readerオブジェクトにはseek属性がありません。 – Robert
@Robertは混乱しています。元のファイル(ここでは 'cf2')を開き、変更が反映されます。そのファイルオブジェクトから作成する 'csv.reader'オブジェクトです。 –
ジムありがとうございます。今、私は分かる。リスト項目ではなく文字列が必要なので、あなたのバージョンをlist [0]のアカウントに変更しました。今はうまくいく。修正行は次の通りであった: 'ラインであれば[0] XLINE中: \t \t \t \t出力[ライン[0]]私は答えにそれを追加します= XLINE \t \t \t \t break' – Robert