DictWriter没有从DictReader接收我的数据

时间:2015-08-17 20:47:20

标签: python csv python-2.6

我正在阅读csv文件,第一行是我的标题行。我已经验证了标头正确传递,但我的outfile仍然是空白的。它没有踢出任何错误。

def main():
    infile = sys.argv[1]
    outfile = sys.argv[2]
    myreader = csv.DictReader(open(infile, 'rbU'))
    for line in myreader:
        print(line['ADDR_NAME'])
    mywriter = csv.DictWriter(open(outfile, 'wb'), 
                              fieldnames=myreader.fieldnames)
    #print(mywriter.fieldnames)
    for row in myreader:
        mywriter.writerow(outfile)

1 个答案:

答案 0 :(得分:3)

您应该将dict传递给最后一行中的mywriter.writerow,而不是您当前正在执行的字符串(文件路径)。请参阅writer docs

如果您只是尝试将所有行从myreader复制到mywriter,那么您还需要重新安排一些事情:打开您的读者和您的作者首先,然后合并你的两个for循环:

def main():
    infile = sys.argv[1]
    outfile = sys.argv[2]
    myreader = csv.DictReader(open(infile, 'rbU'))
    mywriter = csv.DictWriter(open(outfile, 'wb'),
                              fieldnames=myreader.fieldnames)
    for row in myreader:
        print(row['ADDR_NAME'])
        mywriter.writerow(row)

正如克里斯蒂安所提到的,.close档案open也是一种很好的做法,但这不应该导致你的问题。