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

Checking Availability of user inputted File name

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

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

 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
</pre>

我试过了

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

感谢任何帮助

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

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

在Python 2、input()运行s(evals)代码as-is,所以输入"Test"运行是代码 "Test",因为您没有将 Test 定义为变量,因此失败并出现 NameError。

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

或升级到 Python 3,其中 input 满足您的期望。

使用 python2 你必须使用 raw_input 并且你必须连接路径以形成一个字符串以避免错误: isfile() takes exactly 1 argument (给出 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")

将您的代码更改为:

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 比 '+' 或 ',' 更简洁。