我是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中的一行和一列.
@理查德 - 勒瓦瑟
我同意,sed
似乎是正确的方法.以下是OP描述的内容:
sed -i -e's/<><><><><><><>/"/g' foo.txt
这将在现有的地方进行替换foo.txt
.出于这个原因,我建议将原始文件置于某种版本控制之下; 任何DVCS都应符合要求.