检查用户输入的文件名的可用性

时间:2017-01-28 19:55:48

标签: python python-2.7 user-input os.path

我的程序要求用户输入文本文件的文件名。

然后需要检查文件是否已存在。

 else:
        FileName = input("Please input a Valid File Name : ")
        if os.path.isfile("C:/Users/Brads/Documents/", FileName, ".txt"):
            print("File Exists")
        else:
            print("File does not exist")

然而,每次都会出现这样的错误,我不知道为什么会这样。


    Traceback (most recent call last):
    File "C:/Users/Brads/Python/5.py", line 108, in 
    FileName = input("Please input a Valid File Name : ")
    File "", line 1, in 
    NameError: name 'Test' is not defined

我试过了

+str(FileName)+
这也会导致同样的错误。

感谢任何帮助

4 个答案:

答案 0 :(得分:0)

在Python 2.x中,input获取用户的输入并尝试eval。您应该使用raw_input代替:

fileName = raw_input("Please input a valid file name: ")
# Here ----^

答案 1 :(得分:0)

在Python 2中,input()按原样运行(eval s)代码,因此输入" Test"运行代码" Test",因为您还没有将Test定义为变量,因为NameError失败。

就像kennytm所说,在Python 2中你想使用raw_input而不是input;这会将输入的文本保存为字符串,而不是尝试运行它。您的str(FileName)为时已晚,eval已经发生并失败。

或者升级到Python 3,其中input执行您期望的事情。

答案 2 :(得分:0)

使用python2你必须使用raw_input,你必须连接路径以形成一个字符串以避免错误: isfile()只需1个参数(3个给定)

代码看起来像这样

FileName = raw_input("Please input a Valid File Name : ")
if os.path.isfile("C:/Users/Brads/Documents/" + FileName + ".txt"):
    print("File Exists")
else:
    print("File does not exist")

答案 3 :(得分:0)

将您的代码更改为:

import os
FileName = str(input("Please input a Valid File Name : "))
if os.path.isfile("C:/Users/Brads/Documents/{0}.txt".format(FileName)):
    print("File Exists")
else:
    print("File does not exist")

这样它的版本兼容。使用.format比' +'更整洁。或','。