将文件读入Python字典,然后写入文件

将文件读入Python字典,然后写入文件,python,file-io,Python,File Io,我有一个多行、多列的文本文件。如果这很重要的话,有一个标题。希望将所有数据读入Python字典,然后在文件中再次写出。我最终想从两个文件中创建两个字典,在键上连接它们,然后打印出连接的版本,但我甚至不能正确处理这部分。这就是我得到的: import sys import csv from collections import defaultdict usage = "usage: python Newer.py <project_file> <table_file> &

我有一个多行、多列的文本文件。如果这很重要的话,有一个标题。希望将所有数据读入Python字典,然后在文件中再次写出。我最终想从两个文件中创建两个字典,在键上连接它们,然后打印出连接的版本,但我甚至不能正确处理这部分。这就是我得到的:

import sys
import csv
from collections import defaultdict

usage = "usage: python Newer.py <project_file> <table_file> <outfile>"
if len(sys.argv) != 4:
    print usage
    sys.exit(0)

project = open(sys.argv[1], "rb")
table = open(sys.argv[2], "rb")
outfile = open(sys.argv[3], "w")

projectdict = defaultdict(list)

for line in project:
    parts = line.strip().split("\t")
    first = parts[1]
    projectdict[first].append(line)

for key in projectdict:
    outfile.write(" ".join(projectdict[first]) + "\n")
导入系统 导入csv 从集合导入defaultdict 用法=“用法:python Newer.py” 如果len(sys.argv)!=4: 打印使用 系统出口(0) 项目=打开(sys.argv[1],“rb”) 表=打开(sys.argv[2],“rb”) outfile=open(sys.argv[3],“w”) projectdict=defaultdict(列表) 对于项目中的线路: parts=line.strip().split(“\t”) 第一个=零件[1] projectdict[first]。追加(行) 对于项目目录中的键: outfile.write(“.join(projectdict[first])+”\n)
我从中得到的是一个文本文件,它的条目与文本文件中的条目相同,并反复重复。

问题是,无论实际的键是什么,每次都要在第二个循环中的键“first”处写入值。我相信这会解决你的问题

for key in projectdict:
    outfile.write(" ".join(projectdict[key]) + "\n")

你们能不能加上一点预期的和实际的输出,让它更清楚地说明发生了什么