【发布时间】:2025-12-03 05:25:01
【问题描述】:
以下是代码,该代码工作正常,我得到一个以管道作为分隔符的输出文件。但是,我不希望生成新文件,而是希望将现有文件替换为管道分隔符而不是逗号。感谢您的投入。我是 python 新手,在旅途中学习它。
with open(dst1,encoding='utf-8',errors='ignore') as input_file:
with open(dst2, 'w',encoding='utf-8',errors='ignore', newline='') as output_file:
reader = csv.DictReader(input_file, delimiter=',')
writer = csv.DictWriter(output_file, reader.fieldnames,'uft-8', delimiter='|')
writer.writeheader()
writer.writerows(reader)
【问题讨论】:
-
好吧,如果一切都适合内存,只需保留数据并在之后重写它们。如果没有,就做一个 temp_file
-
一个更谨慎的策略可能是重命名旧文件,然后用旧文件的名称写入新文件。然后您可以在发生错误时恢复。
-
@snakecharmerb:通常你会反其道而行之;写入一个新文件,然后仅当新文件已完全写入时,才用新文件原子地替换原始文件。
-
@ShadowRanger 当然 - 我只是建议谨慎,因为 OP 正在学习,但工业强度的鲁棒性很好。
标签: python python-3.x file csv