DictWriter 没有收到来自 DictReader 的数据
DictWriter not receiving my data from DictReader
我正在读取一个 csv
文件,第一行是我的 header 行。我已经验证 headers 被正确传递,但我的输出文件仍然是空白的。它不会引发任何错误。
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)
您应该在最后一行将字典传递给 mywriter.writerow
,而不是像您当前所做的那样传递字符串(文件路径)。见 writer docs.
如果您只是想复制从 myreader
到 mywriter
的所有行,您还需要稍微重新排列一下:打开 reader 和首先是你的作家,然后合并你的两个 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)
正如 Cristian 所提到的,.close
向您 open
提交文件也是一种很好的做法,但这不应该成为您的问题所在。
我正在读取一个 csv
文件,第一行是我的 header 行。我已经验证 headers 被正确传递,但我的输出文件仍然是空白的。它不会引发任何错误。
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)
您应该在最后一行将字典传递给 mywriter.writerow
,而不是像您当前所做的那样传递字符串(文件路径)。见 writer docs.
如果您只是想复制从 myreader
到 mywriter
的所有行,您还需要稍微重新排列一下:打开 reader 和首先是你的作家,然后合并你的两个 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)
正如 Cristian 所提到的,.close
向您 open
提交文件也是一种很好的做法,但这不应该成为您的问题所在。