Python有时将CSV文件的附加行添加到上一行的末尾

2024-03-29 15:34:03 发布

您现在位置:Python中文网/ 问答频道 /正文

打开现有文件并向其中写入词典有时会将词典(作为行写入)附加到前一行的末尾。如何设置此代码以始终防止出现这种情况?似乎只有当前一个代码“run”崩溃,我重新启动了代码,并且它开始从前一个运行写入文件时才会发生这种情况(我想要的是-只是不要添加到前一行的末尾)。你知道吗

        #Creating output dictwriter for results
        with open(csv, 'a', 0) as outputFile:
            fieldnames = csvCols
            successWriter = csv.DictWriter(outputFile, fieldnames=fieldnames)
            successWriter.writerow(out_dict)
        outputFile.close()

在“ab”模式下打开文件会有所不同吗?你知道吗


Tags: 文件csvrun代码creatingforoutput情况
2条回答

在Python2.x中,以下内容应该可以正常工作:

# Creating output dictwriter for results

with open(csv, 'ab') as outputFile:
    successWriter = csv.DictWriter(outputFile, fieldnames=csvCols)
    successWriter.writerow(out_dict)

with语句将自动关闭文件,即使脚本有问题。如果不使用ab模式,则每次调用writerow都会产生额外的空行。你知道吗

如果您使用的是Python3.x,则需要:

# Creating output dictwriter for results

with open(csv, 'a', newline='') as outputFile:
    successWriter = csv.DictWriter(outputFile, fieldnames=csvCols)
    successWriter.writerow(out_dict)

您通常会将“\n”添加到文件行,以便它写入下一行。你知道吗

相关问题 更多 >