在Python 3中检查文件是否存在
我想知道如何根据用户输入来检查一个文件是否存在,如果不存在的话,我想创建一个。
所以我会有这样的代码:
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)