我现在是这样做的,但我希望它在文件开头写入。

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/

10-11 22:01
查看更多