我有一个包含以下数据的文件:
88_NPDJ 565 789 3434 54454
98HGJDN 945 453 3453 23423
...
...
...
什么是向文件添加标头的最佳方法?将数据输入文件后。数据以制表符分隔。
答案 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)
我假设您已经知道标题是什么,并且您只是想要一种以编程方式将它们插入文件顶部的方法。
一种方法是将文件读入内存,截断它,写入标题然后写回文件的内容。如果文件很大,这可能不会很好。如果可能是这种情况,那么您可以将标头写入新文件,然后从原始文件中读取每一行并将其附加到新文件,最后重命名新文件以便替换旧文件。