检查用户输入的文件名的可用性
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(eval
s)代码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 比 '+' 或 ',' 更简洁。
我的程序要求用户输入文本文件的文件名。
然后需要检查文件是否已经存在。
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(eval
s)代码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 比 '+' 或 ',' 更简洁。