如何使用Python更改文件的字段分隔符?

2 投票
4 回答
18730 浏览
提问于 2025-04-16 17:51

我刚从R语言转到Python,现在在处理一些很大的文本文件,这些文件是按数据列结构化的(这是LiDaR数据,通常有超过6000万条记录)。

有没有办法在不读取整个文件并逐行处理的情况下,改变这样的一个大文件的字段分隔符(比如从制表符分隔改成逗号分隔)?

4 个回答

1

其实可以这么说,是的,你可以在不使用循环的情况下做到这一点,比如:

with open('in') as infile:
  with open('out', 'w') as outfile:
      map(lambda line: outfile.write(','.join(line.split('\n'))), infile)
1

你可以使用 Linux中的tr命令 来把一个字符替换成另一个字符。

6

不。

  • 先把文件读进来
  • 把每一行的分隔符改一下
  • 然后把每一行写回去

用几行Python代码就能轻松搞定这个(虽然没测试过,但这个思路是可行的):

# Python - it's so readable, the code basically just writes itself ;-)
#
with open('infile') as infile:
  with open('outfile', 'w') as outfile:
    for line in infile:
      fields = line.split('\t')
      outfile.write(','.join(fields))

我对R不太熟悉,但如果它有相关的库函数,可能也是在做同样的事情。

需要注意的是,这段代码一次只从文件中读取一行,所以即使文件比电脑的内存大也没关系——它不会一次性把整个文件都加载进来。

撰写回答