检查Python 3中是否存在文件

时间:2014-05-04 17:10:25

标签: python python-3.x

我想知道如何根据用户输入检查文件是否存在,如果没有,那么我想创建一个。

所以我会有类似的东西:

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

然后我想查看文件名是否存在。

如果文件名确实存在,请打开要写入或读取的文件,如果文件名不存在,则根据用户输入创建文件。

我知道关于文件的基本知识,但不知道如何使用用户输入来检查或创建文件。

2 个答案:

答案 0 :(得分:19)

您可以使用os模块:

像这样通过os.path.isfile():

import os.path
os.path.isfile(file_path)

或使用os.path.exists():

if os.path.exists(file_name): print("I get the file >hubaa")

如果文件不存在:(返回False)

if not os.path.exists(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:
    my_file = open(file_name)
except IOError:
    os.touch(file_name)

答案 1 :(得分:1)

完全按照你的要求行事:

您将要查看os.path.isfile()函数,然后查看open()函数(将变量作为参数传递)。


然而,正如@LukasGraf所指出的,这通常被认为不太理想,因为如果您在检查文件是否存在以及何时创建文件时引入了race condition去打开它。

相反,通常首选的方法是尝试打开它,并捕获生成的异常,如果你不能:

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