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
我正在尝试读取和写入字典的文件夹中有多个文本文件。文件如下所示:
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