python赢得了';如果脚本中有函数,则不会写入文件

python赢得了';如果脚本中有函数,则不会写入文件,python,function,Python,Function,我想从包含函数的脚本写入文件。一切似乎都正常,除了如果脚本中存在函数,它不会向文件写入任何内容(它会向文件写入“”,因此实际上会擦除它);即使它在定义函数之前写入。 (运行Python 3.9.0) 这会将“A”写入test.txt: f = open("test.txt", "w") f.write("A") f.close f = open("test.txt", "w") f.write(

我想从包含函数的脚本写入文件。一切似乎都正常,除了如果脚本中存在函数,它不会向文件写入任何内容(它会向文件写入“”,因此实际上会擦除它);即使它在定义函数之前写入。 (运行Python 3.9.0)

这会将“A”写入test.txt:

f = open("test.txt", "w")
f.write("A")
f.close
f = open("test.txt", "w")
f.write("A")
f.close

def func():
    return 1
这会将“”写入test.txt:

f = open("test.txt", "w")
f.write("A")
f.close
f = open("test.txt", "w")
f.write("A")
f.close

def func():
    return 1

我做错了什么/如何解决它?

您需要通过添加括号调用
f.close
f.close()
。它没有刷新写入缓冲区。它在第一种情况下工作只是偶然的。请注意,使用
with
语句在Python中打开文件是一种很好的做法,请参阅。使用离开
下方的缩进块时,
close()
调用将自动正确完成。