Python write()函数不覆盖
我正在尝试覆盖文件的内容。但是,程序不会覆盖,而是在行尾追加字符。该文件包含数字0。这是我正在使用的代码:Python write()函数不覆盖,python,Python,我正在尝试覆盖文件的内容。但是,程序不会覆盖,而是在行尾追加字符。该文件包含数字0。这是我正在使用的代码: file = open('my_file', 'w') for x in range(5): >>file.write(str(x)) 我得到的结果是“01234”,但我预期的结果是“4”。这完全正常。以w模式打开文件会在打开文件后立即截断文件一次。它不会在每次写入后重置文件指针。写入是连续进行的,每次写入都将文件指针留在写入的数据末尾 为了获得期望的结果,您需要在循环的每
file = open('my_file', 'w')
for x in range(5):
>>file.write(str(x))
我得到的结果是“01234”,但我预期的结果是“4”。这完全正常。以w模式打开文件会在打开文件后立即截断文件一次。它不会在每次写入后重置文件指针。写入是连续进行的,每次写入都将文件指针留在写入的数据末尾 为了获得期望的结果,您需要在循环的每次迭代中重新打开文件
for x in range(5):
with open('my_file', 'w') as f:
f.write(str(x))
我相信您得到“01234”的原因是因为您将代码放入for循环中:x从0增加到4,并且每次都写入文本文件。尝试删除for循环并将x设置为4
您还可以尝试在for循环内部的write模式下使用open函数。您正在for循环外部打开一个文件,并且该文件将被打开以供进一步操作。您没有关闭该文件。所以,即使它处于写模式,指针也不会被重置 以下是示例代码:
for x in range(5):
f = open('1.txt' , 'w')
f.write(str(x))
f.close()
这难道不比你完成后增加x和写东西效率更低吗?@OrdoFlammae-OP不是在问效率。不,你说得对,他不是。不过,我只是觉得最好能提一下,它的效率确实很低。那就是。。。。file.write应该做什么。要覆盖,您必须反复打开和关闭文件。然而,我建议你完成工作后数数和写。