我是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
Run Code Online (Sandbox Code Playgroud)
但复制数百GB是浪费.另外我不知道open是否会占用大量内存(它是否将文件处理程序视为流?)
任何帮助是极大的赞赏.
注意:文件的一个例子是
file.txt
<><><><><><><>
abcdefeghsduai
asdjliwa
1231214 ""
<><><><><><><>
Run Code Online (Sandbox Code Playgroud)
将是csv中的一行和一列.
@理查德 - 勒瓦瑟
我同意,sed似乎是正确的方法.以下是OP描述的内容:
sed -i -e's/<><><><><><><>/"/g' foo.txt
Run Code Online (Sandbox Code Playgroud)
这将在现有的地方进行替换foo.txt.出于这个原因,我建议将原始文件置于某种版本控制之下; 任何DVCS都应符合要求.