无法通过f.open()打开文件

时间:2019-11-29 16:41:17

标签: python python-3.x file

我写了这段代码:

        f = open('mese.txt', 'a')

但是,似乎不会创建该文件,或者,如果我在编写的程序之外创建该文件,则根本不会打开该文件。 同样,程序会运行,但是执行这些操作时,程序本身崩溃/结束并显示0错误。 我该如何运作?

4 个答案:

答案 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()),即使发生异常。

Read about with

答案 3 :(得分:0)

我发现了错误。问题出在其他方面,而我正尝试对字符串和整数进行比较...