python - 如何在 python 中将一个大文件更改为 csv

标签 python file csv

我是 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/

相关文章:

python - psycopg2 与 MySQLdb 反斜杠转义行为

python - 如何在关闭时停止具有无限循环的 Python 守护进程线程?

python - Flask应用程序错误: failed to load external entity.无法输入xml文件进行解析

python - 如何将自定义构建步骤添加到我的 setuptools/distribute setup.py 中?

java - 使用基于字节的 FileOutputStream 时出现奇怪的符号,基于字符的 FileWriter 是可以的

javascript - PHP - 间隔数组迭代

PHP/MYSQL上传,导入.csv文件到mysql-process-table design

java - 如何使用批处理命令读取日志文件末尾?

c# - 为什么 Path.Combine 不能正确连接以 Path.DirectorySeparatorChar 开头的文件名?

php - 如何在 Wordpress 中下载导出的 csv 文件