我有一个标题行需要在文本文件的开头打印,然后下一行应包含有关多少有数据线。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