我写了这段代码:
f = open('mese.txt', 'a')
但是,似乎不会创建该文件,或者,如果我在编写的程序之外创建该文件,则根本不会打开该文件。 同样,程序会运行,但是执行这些操作时,程序本身崩溃/结束并显示0错误。 我该如何运作?
答案 0 :(得分:1)
您无需检查任何内容。只需使用
f = open('mese.txt', 'a')
如果mese.txt
还不存在,则将创建并打开该文件以进行写入,就像您已经写入open('mese.txt', 'w')
一样。换句话说,'w'
和'a'
之间的唯一区别与空文件或尚不存在的文件无关。
答案 1 :(得分:0)
所有您需要打开的文件进行追加。这样做时,如果文件存在,则以追加模式打开它。如果该文件不存在,则会在附加模式下创建并打开它。
# if exists, opens in append mode
# if does not exist, creates and opens in append mode
file_handle = open(file_path, 'a')
尽管这不是必需的,但我建议签出pathlib。它为平台无关的路径提供了检查它们是否存在或打开它们的方法。
from pathlib import Path
file_path = Path('mese.txt')
file_descriptor = file_path.open('a') # Opens (and creates) file for appending
exists = file_path.exists() # True if file exists
is_file = file_path.is_file() # True if the path leads to a file
编辑:
当然,在每种情况下,with语句都可以使用。
with open(file_path, 'a') as file_descriptor:
pass
完成后,即使出现异常,这也会关闭文件句柄。 open
语句接受字符串路径以及pathlib.Path
对象。
答案 2 :(得分:0)
另外两个答案很好,但是如果只需要简单的解决方案,则可以使用with
,如下所示:
with open('mese.txt', "a") as f:
f.write(line)
with
之后将清理资源(无需手动调用close()
),即使发生异常。
答案 3 :(得分:0)
我发现了错误。问题出在其他方面,而我正尝试对字符串和整数进行比较...