我现在是这样做的,但我希望它在文件开头写入。
f = open('out.txt', 'a') # or 'w'?
f.write("string 1")
f.write("string 2")
f.write("string 3")
f.close()
因此,
out.txt
的内容为:string 3
string 2
string 1
而不是(就像这个代码那样):
string 1
string 2
string 3
最佳答案
看看this question。这里有一些解决方案。
尽管我可能会像丹尼尔和马克建议的那样——也许做一个lil'class让事情变得更加灵活和明确:
class Prepender:
def __init__(self, fname, mode='w'):
self.__write_queue = []
self.__f = open(fname, mode)
def write(self, s):
self.__write_queue.insert(0, s)
def close(self):
self.__exit__(None, None, None)
def __enter__(self):
return self
def __exit__(self, type, value, traceback):
if self.__write_queue:
self.__f.writelines(self.__write_queue)
self.__f.close()
with Prepender('test_d.out') as f:
f.write('string 1\n')
f.write('string 2\n')
f.write('string 3\n')
关于python - 在文件开头写()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2677617/