将标头添加到文件中

时间:2010-07-01 23:09:46

标签: python file-io header

我有一个包含以下数据的文件:

88_NPDJ    565    789   3434   54454
98HGJDN    945    453   3453   23423
...
...
...

什么是向文件添加标头的最佳方法?将数据输入文件后。数据以制表符分隔。

3 个答案:

答案 0 :(得分:9)

获得altering a file in place效果的最佳方式是fileinput

import fileinput

headers = 'a b c d e'.split()
for line in fileinput.input(['thefile.blah'], inplace=True):
    if fileinput.isfirstline():
        print '\t'.join(headers)
    print line,

答案 1 :(得分:1)

哪种标题?类似的东西:

type A     Type B Type C Type D  Type E
88_NPDJ    565    789    3434    54454
98HGJDN    945    453    3453    23423
...
...
...

不是吗?

您可以打开临时文件,编写标题,然后将文件的其余部分附加到临时文件中。删除原始文件并重命名temp。像原版一样。

import os
headers = ['type 1', 'type 2', 'insert more types']
filename = 'your/file/here'
tmp = open('TMP', 'w')
orig = open(filename, 'r')
tmp.write('\t'.join(headers) + '\n')
for line in orig.readlines():
    tmp.write(line)
orig.close()
tmp.close()
os.remove(filename)
os.rename('TMP', filename)

答案 2 :(得分:0)

我假设您已经知道标题是什么,并且您只是想要一种以编程方式将它们插入文件顶部的方法。

一种方法是将文件读入内存,截断它,写入标题然后写回文件的内容。如果文件很大,这可能不会很好。如果可能是这种情况,那么您可以将标头写入新文件,然后从原始文件中读取每一行并将其附加到新文件,最后重命名新文件以便替换旧文件。