Python将两个文本文件与字典相结合-列数不一致
我有两个文本文件,我需要结合使用一个共同的关键,两者都有。我可以将它们都读入python词典,但仍然有一个重大问题。例如: 文件-1: 文件-2: 我想知道:Python将两个文本文件与字典相结合-列数不一致,python,file,text,Python,File,Text,我有两个文本文件,我需要结合使用一个共同的关键,两者都有。我可以将它们都读入python词典,但仍然有一个重大问题。例如: 文件-1: 文件-2: 我想知道: Sample Criteria1 Criteria2 Criteria3 Criteria4 Criteria5 Criteria6 Date Sample Metric2 Metric3 Metric4 Metric5 A 1 5 98 3
Sample Criteria1 Criteria2 Criteria3 Criteria4 Criteria5 Criteria6 Date Sample Metric2 Metric3 Metric4 Metric5
A 1 5 98 3 9 A 5 98 3
B 2 4 56 12 34 8 B 4 56 12
C 3 99 45 33 2 C 99 45
这是我的代码:
project = open(sys.argv[1], "rb")
table = open(sys.argv[2], "rb")
outfile = open(sys.argv[3], "w")
projectdict = {}
for line in project:
parts = line.strip().split("\t")
projectdict[str(parts[1])] = line.strip().split("\t")
tabledict = {}
for line in table:
parts = line.strip().split("\t")
tabledict[str(parts[0])] = line.strip().split("\t")
for key in tabledict:
outfile.write(key + "\t" + str(tabledict[key]) + "\t" + str(projectdict[key]) + "\n")
project.close()
table.close()
outfile.close()
我得到的是:
9 A 5 98 3 9 A 5 98 3
8 B 4 56 12 8 B 4 56 12
2 C 99 45 2 C 99 45
单词Sample也会导致一条keyrerror消息,因此我也不会在输出中获得我的列标题
我曾希望使用字典可以避免这个问题
感谢您的帮助。事实上,输出与发布略有不同,因为文件1的内容先是文件1的内容,然后是文件2的内容,但总体思路是不保留空字段。如果这是文本文件,可能不需要所有str函数,也不需要“rb”只是r或rU。您正在将整行作为一个条目加载,其中包含行中第二个元素的键?对于测试,只需打印输出,而不是写入文件。对字典的最后一次调用只使用tabledict键的最后一个值?这在projectdict中不存在,因为您使用了字段1而不是0。。。这里的逻辑问题!
project = open(sys.argv[1], "rb")
table = open(sys.argv[2], "rb")
outfile = open(sys.argv[3], "w")
projectdict = {}
for line in project:
parts = line.strip().split("\t")
projectdict[str(parts[1])] = line.strip().split("\t")
tabledict = {}
for line in table:
parts = line.strip().split("\t")
tabledict[str(parts[0])] = line.strip().split("\t")
for key in tabledict:
outfile.write(key + "\t" + str(tabledict[key]) + "\t" + str(projectdict[key]) + "\n")
project.close()
table.close()
outfile.close()
9 A 5 98 3 9 A 5 98 3
8 B 4 56 12 8 B 4 56 12
2 C 99 45 2 C 99 45