使用Python 2.7.1,我读了一个文件:
input = open(file, "rU")
tmp = input.readlines()
看起来像这样:
>name -----meoidoad
>longname -lksowkdkfg
>nm --kdmknskoeoe---
>nmee dowdbnufignwwwwcds--
也就是说,每一行都有一个空子的短子串,但这个子串的长度因行而异。
我想编写编辑我的tmp
对象的脚本,这样当我将tmp
写入文件时,结果就是
>name
-----meoidoad
>longname
-lksowkdkfg
>nm
--kdmknskoeoe---
>nmee
dowdbnufignwwwwcds--
即。我想将每一行分成两行,在空格的子串中(并删除过程中的空格)。
在空白之后字符串的起始位置在文件中总是相同的,但在大批文件中可能会有所不同我正在努力。所以,我需要一个不依赖职位的解决方案。
我在这里看到过很多类似的问题,有很多很受欢迎的答案,使用简短的正则表达式脚本来完成,所以我可能会复制上一个问题。然而,到目前为止,我所看到的并不适用于我。
答案 0 :(得分:1)
import re
with open('path/to/input') as infile, open('path/to/output', 'w') as outfile:
for line in infile:
outfile.write(re.sub('\s\s+', '\n', line))
答案 1 :(得分:0)
如果文件不是很大(即数百MB),您可以使用split()
和join()
简洁地执行此操作:
with open(file, 'rU') as f, open(outfilename, 'w') as o:
o.write('\n'.join(f.read().split()))
我还建议不要命名任何input
,因为这会掩盖内置的内容。