如果我跑
file = open("BAL.txt","w")
I = '200'
file.write(I)
file.close
从脚本中,它不会在文件中输出任何内容。 (它实际上没有任何内容覆盖文件)
此外,运行cat BAL.txt只会转到下一行,就像文件中没有任何内容一样。
但是如果我在python控制台中逐行运行它,它的工作原理非常好。
为什么会这样呢? (我是一个学习python的人,错误可能是非常明显的。我已经花了大约2个小时试图解决这个问题)
提前致谢
答案 0 :(得分:3)
写入你执行此操作的文件:
file = open("file.txt","w")
file.write("something")
file.close()
使用file.write()
时会删除文件的所有内容,如果要写入文件的末尾,请执行以下操作:
file = open("file.text","w+")
file.write(file.read()+"something")
file.close()
还有其他方法可以做到这一点,但这个方法是最直观的(不是最有效的),另一种方式往往是错误的,所以没有理由发布它,因为这是可靠的。
答案 1 :(得分:2)
您没有正确关闭文件。要关闭它,您会错过()
末尾的file.close
,所以它应如下所示:
file = open("BAL.txt", "w")
file.write("This has been written to a file")
file.close()
This site has the same example and may be of some use to you.
另一种方法,尤其适用于将多个值附加到单个文件中时,使用with open("BAL.txt","w") as file:
之类的方法。以下是您重写的脚本以包含此示例:
I = '200'
with open("BAL.txt","w") as file:
file.write(I)
这将打开我们的文件,其值为file
,并允许我们为其写入值。另请注意,此处不需要file.close()
,并且需要使用附加文字w+
。
答案 2 :(得分:1)
首先,当你关闭文件时,你错过了括号。其次,写入文件应该这样做:
file = open("BAL.txt", "w")
file.write("This has been written to a file")
file.close()
如果您有任何问题,请与我们联系。