gpt4 book ai didi

Python:写入 csv 文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:25 25 4
gpt4 key购买 nike

我正在尝试读取一个 csv 样式的文件并创建另一个文件。这是(简化的)代码。

import os
import csv
import sys

fn = 'C:\mydird\Temp\xyz'
ext = '.txt'
infn = fn+ext
outfn = fn+'o'+ext


infile = open(infn, newline='')
outfile = open(outfn, 'w', newline='')

try:
reader = csv.reader(infile, delimiter=',', quotechar='"') # creates the reader object
writer = csv.writer(outfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

for row in reader: # iterates the rows of the file in orders
if reader.line_num == 1 :
print("Header")
writer.writerow(['Date',
'XY']) # ####### Does not work
else:
# Do something
print(row[0],
row[3]) # ####### Works
writer.writerow([row[0],
row[3]]) # ####### Does not work
finally:
infile.close() # closing

sys.exit(0))

writerow 语句都不生成输出。

文件已创建,但为空。

打印语句创建“预期”输出。

我也试过 csv.DictWriter 也没有成功。

我看过各种类似的问题,但看不出有什么不同。

我在 win 7 机器上使用 Py 3.3.3。

编辑:

作者迷失了代码简化

最佳答案

您的代码没有定义编写器。

添加 writer = csv.writer(outfile) 然后关闭输出文件,它应该可以工作了。使用 with 习惯用法可以使代码更简洁。

import csv

fn = 'C:\mydird\Temp\xyz'
ext = '.txt'
infn = fn+ext
outfn = fn+'o'+ext

with open(infn) as rf, open(outfn, 'w') as wf:
reader = csv.reader(rf, delimiter=',', quotechar='"')
writer = csv.writer(wf)
for row in reader: # iterates the rows of the file in orders
if reader.line_num == 1 :
print("Header")
writer.writerow(['Date', 'XY'])
else:
# do something
print(row[0], row[3])
writer.writerow([row[0], row[3]])

关于Python:写入 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38019888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com