Python将数据写入文件仅在从控制台运行时才有效

时间:2018-01-21 00:48:33

标签: python python-3.x

如果我跑

file = open("BAL.txt","w")
I = '200'
file.write(I)
file.close

从脚本中,它不会在文件中输出任何内容。 (它实际上没有任何内容覆盖文件)

此外,运行cat BAL.txt只会转到下一行,就像文件中没有任何内容一样。

但是如果我在python控制台中逐行运行它,它的工作原理非常好。 为什么会这样呢? (我是一个学习python的人,错误可能是非常明显的。我已经花了大约2个小时试图解决这个问题)
提前致谢

3 个答案:

答案 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()

如果您有任何问题,请与我们联系。