我的程序要求用户输入文本文件的文件名。
然后需要检查文件是否已存在。
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)+
这也会导致同样的错误。
感谢任何帮助
答案 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比' +'更整洁。或','。