Python: dict.items() 正在打印更多行(不在实际文件中的行)

Python: dict.items() is printing more rows (rows that are not in actual file)

我正在尝试读取和写入字典的文件夹中有多个文本文件。文件如下所示:

file1.txt:

chr17   1   1   T   C   C   5
chr13   2   2   A   A   G   4

file2.txt:

chr17   1   1   T   C   C   5
chr17   2   2   A   A   G   4

代码:

import os,csv, glob


mydict = {}
for file in glob.glob(os.path.join(os.getcwd(), '*.txt')):
    with open(file) as f:
        for line in f:
            mydict[",".join(line.split()[0:4])] = ",".join(line.split()[4:6])
    for (key,val) in mydict.items():
        print file, key, val

期望它打印两个文件中的所有四行,前四列作为键,5,6 列作为值:

file1.txt chr17,1,1,T C,C
file1.txt chr13,2,2,A A,G
file2.txt chr17,1,1,T C,C
file2.txt chr17,2,2,A A,G

但是得到这个,而不是:

file1.txt chr17,1,1,T C,C
file1.txt chr13,2,2,A A,G
file2.txt chr17,1,1,T C,C
file2.txt chr13,2,2,A A,G (extra row!!! This row's in file1, but not file2)
file2.txt chr17,2,2,A A,G

您需要为每个文件创建一个新的 mydict

import os,csv, glob    

for file in glob.glob(os.path.join(os.getcwd(), '*.txt')):
    with open(file) as f:
        mydict = {}
        for line in f:
            mydict[",".join(line.split()[0:4])] = ",".join(line.split()[4:6])
    for key,val in mydict.iteritems():
        print file, key, val