簡體   English   中英

在Python中將文本文件的每個值移至其各自的行

[英]Moving each value of a text file to its own line in Python

這是一個相當簡單的問題,但我想知道如何把每一節這個文本文件到它自己的線路,比如像這樣:

0.00000159
volume
645453536.89920200
lasttradetime

謝謝!

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

這將使用空格(空格,制表符等)作為分隔符將整個文件分成幾部分。 如果要再次將其保存到文件中,請每行一行:

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

查看您的文件,我認為您希望將最后交易時間保持在一起,例如

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" 。)

要支持可能不適合內存的任意大文件,可以使用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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM