在Python中将文本文件的每个值移动到自己的行

时间:2014-03-06 15:53:56

标签: python python-2.7 text

这是一个相当简单的问题,但我想知道如何放置this的每个部分 将文本文件放入其自己的行中,例如:

0.00000159
volume
645453536.89920200
lasttradetime

谢谢!

3 个答案:

答案 0 :(得分:6)

lines = open("textfile").read().split()

这将使用空格(空格,制表符等)作为分隔符将整个文件分成几部分。如果要将其再次保存到文件中,每一行都在一行:

open("newtextfile", "w").write('\n'.join(lines))

答案 1 :(得分:0)

查看您的文件让我觉得您希望将最后的交易时间保持在一起,例如

0.00000159
volume
645453536.89920200
lasttradetime
2014 03 06 10 32 03

所以我推荐像

这样的东西
import re
with open("infile.txt") as fp_in, open("outfile.txt", "w") as fp_out:
    d = fp_in.read()
    parts = re.split(r"\s\s+", d)
    for part in parts:
        fp_out.write(part + "\n")

将实现这一目标。 (组合部分并执行一次写操作可能稍微快一些,例如"\n".join(parts) + "\n"。)

答案 2 :(得分:0)

要支持可能不适合内存的任意大文件,可以使用mmap

#!/usr/bin/env python
import re
from mmap import ACCESS_READ, mmap

with open('filename', 'rb') as file:
    mm = mmap(file.fileno(), 0, access=ACCESS_READ)
    try:
        with open('output', 'wb') as output_file:
            for m in re.finditer(r'\S+', mm):
                print >>output_file, m.group()
    finally:
        mm.close()