在Python 3中检查文件是否存在

33 投票
2 回答
82540 浏览
提问于 2025-04-18 05:20

我想知道如何根据用户输入来检查一个文件是否存在,如果不存在的话,我想创建一个。

所以我会有这样的代码:

file_name = input('what is the file name? ')

然后我想检查一下这个文件名是否存在。

如果文件名存在,就打开这个文件进行读写;如果文件名不存在,就根据用户的输入来创建这个文件。

我对文件的基本知识了解得很少,但不知道怎么用用户输入来检查或创建文件。

2 个回答

5

要做到你所要求的事情:

你需要看看 os.path.isfile() 这个函数,然后再看看 open() 函数(把你的变量作为参数传进去)。


不过,正如 @LukasGraf 所提到的,这种做法通常不太理想,因为它可能会引发一个叫做 竞争条件 的问题。简单来说,就是在你检查文件是否存在和打开文件之间,如果有其他程序创建了这个文件,就会出问题。

所以,通常更好的方法是直接尝试打开文件,如果打不开,就捕捉到那个错误:

try:
    my_file = open(file_name)
except IOError:
    # file couldn't be opened, perhaps you need to create it
52

如果这个文件不是一个文件,就返回假(False):

import os.path
if not os.path.isFile(file_name):
      print("The File s% it's not created "%file_name)
      os.touch(file_name)
      print("The file s% has been Created ..."%file_name)

你可以根据 (try, Except) 写一段简单的代码:

try:
    my_file = open(file_name)
except IOError:
    os.touch(file_name)

撰写回答