我有一個包含類似下面的數據文件:添加標題到文件
88_NPDJ 565 789 3434 54454
98HGJDN 945 453 3453 23423
...
...
...
什麼來頭添加到該文件的最好方法?數據輸入到文件後。數據是製表符分隔的。
我有一個包含類似下面的數據文件:添加標題到文件
88_NPDJ 565 789 3434 54454
98HGJDN 945 453 3453 23423
...
...
...
什麼來頭添加到該文件的最好方法?數據輸入到文件後。數據是製表符分隔的。
最好的辦法是用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,
我假設您已經知道標題是什麼,並且您只是想以某種方式以編程方式將它們插入文件的頂部。
一種方法是將文件讀入內存,截斷它,寫入標題然後回寫文件的內容。如果文件很大,這可能效果不佳。如果是這種情況,那麼你可以將頭文件寫入一個新文件,然後從原始文件中讀取每行並將其附加到新文件中,最後重命名新文件以替換舊文件。得到的altering a file in place
效果
'fileinput'完成你所需要的所有工作,照顧所有的新文件,重命名等 - 沒有理由「手動」! - ) – 2010-07-01 23:24:17
好,從來不知道!我已經編輯了我的答案,以免我的方式再次變得「最簡單」。 – Weeble 2010-07-02 11:13:36
哪種頭?例如:
type A Type B Type C Type D Type E
88_NPDJ 565 789 3434 54454
98HGJDN 945 453 3453 23423
...
...
...
不是嗎?
您可以打開臨時文件,寫入標題,然後將文件的其餘部分附加到臨時文件。刪除原始文件並重命名臨時文件。像原來的一樣。
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)
你可以試着描述一下這個問題好一點嗎?你知道你想添加什麼標題,只是想知道如何編寫一個程序,將它們插入頂部?或者你需要以某種方式找出標題應該是什麼? – Weeble 2010-07-01 23:17:29