我有一個標題行需要在文本文件的開頭打印,然後下一行應包含有關多少有數據線。file.write()事先不知道文件長度的文件長度 - python
最終輸出文件應該包含如下內容:
- 文件(即,在線路#2的第一
\n
- 長度之前標題行之前的第二
\n
- 未知字符串的線
問題是如何能(2)內容不知道有多少l字符串有嗎?
我已經做了這樣:
- 寫標題行
- 寫的50個
" "
字符的假線 - 寫串的未知線,同時保持#lines 的計數器
- 尋找標題行末尾
- 在第二行寫上#line行,讓其餘
" "
不要觸碰 - 關閉文件(想象它上升到19GB值得字符串)
例如起見,我用random.random()
生成的行數,和我一直在做這樣說:
import random
fout = open('testoverwrite','w')
header = "%% this is a header line"
print>>fout, header
print>>fout, "".join((" ")*50)
total = 0
numrows = int(100*random.random())
for i in range(numrows):
j = int(100*random.random())
total+=j
print>>fout, j
fout.seek(len("%% this is a header line\n"))
#print len(str(numrows)+" "+str(total))
if len(str(numrows)+" "+str(total)) < 50:
fout.write(str(numrows)+" "+str(total))
fout.close()
有沒有更好的方法來做到這一點?
爲什麼在寫任何東西之前你需要知道文件長度?你爲什麼打印出來?例如,您是否在賬單系統中列出賬戶數量? – octopusgrabbus
更好地使用'open('testoverwrite','w')作爲fout:'用於處理文件IO。 –
,因爲這個腳本的輸出是另一個的輸入,並且(2)條件對於確定下一個腳本中的選項是必不可少的。 – alvas