我是 python 的初学者。我有一个巨大的文本文件(数百 GB),我想将该文件转换为 csv 文件。在我的文本文件中,我知道行分隔符是一个字符串“<><><><><><>”。如果一行包含该字符串,我想将其替换为“。有没有一种方法可以做到这一点而不必读取旧文件并重写新文件。
通常我认为我需要做这样的事情:
fin = open("input", "r")
fout = open("outpout", "w")
line = f.readline
while line != "":
if line.contains("<><><><><><><>"):
fout.writeline("\"")
else:
fout.writeline(line)
line = f.readline
但是复制数百 GB 是一种浪费。我也不知道 open 是否会占用大量内存(它是否将文件处理程序视为流?)
非常感谢任何帮助。
注意:文件的一个例子是
file.txt
<><><><><><><>
abcdefeghsduai
asdjliwa
1231214 ""
<><><><><><><>
将是 csv 中的一行和一列。
最佳答案
@richard-levasseur
我同意,sed
似乎是正确的方法。这是 OP 描述的粗略内容:
sed -i -e's/<><><><><><><>/"/g' foo.txt
这将在现有 foo.txt
中就地进行替换。出于这个原因,我建议将原始文件置于某种版本控制之下;任何 DVCS 都应该符合要求。
关于python - 如何在 python 中将一个大文件更改为 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/576967/