Python .write() 修改顺序
我遇到了一些问题:
f = open('OUTPUT.txt', 'w')
def function
if ........
......
f.write(XXX) #this must be in this loop #1.write
else:
....
....
....other code...
................
with open("INPUT.txt") as f_in:
for line in f_in:
for char in line:
frequencies[char] += 1
input= [(count, char) for char, count in frequencies.iteritems()]
f.write(' '.join("%s=%s" % (y, x) for x,y in input)) #2.write
f.close()
如你所见,我在代码中写了两次“function”,我想知道怎么改变在文本文件中的写入顺序;我想先写“input”,然后再写“f.write(XXX)”
2 个回答
1
是什么让你不能把计算字符频率的循环放在 f.write(XXX) 循环之前呢?
0
你可以先用一个临时文件来写入数据,然后再把'input'的数据写入OUTPUT.txt,最后把临时文件的内容追加到输出文件中。
如果数据量不大(也就是说可以放进内存里),你可以使用StringIO来处理。在Python 2.7中可以这样做:
import StringIO
temp = StringIO.StringIO()
write xxx to temp file here
...
write 'input' data to output file here
temp.seek(0) # sets current position in file to it's beginning
for line in temp:
output.write(line)
temp.close()
output.close()