每当我调用os.path.exists(变量)时,它将返回false,但如果我调用os.path.exists('/ this / is / my / path'),它将返回true。
import os
import sys
test = None
print("Test directory")
test= sys.stdin.readline()
test.strip('\n')
print(os.path.exists(test))
我知道如果存在权限错误,os.path.exists可以返回false,但我引用的目录没有限制。有时我的路径中有空格。我尝试传递路径,因为'/ this \是/ my / path'和'/ this is / my / path具有相同的结果。
答案 0 :(得分:6)
答案 1 :(得分:1)
strip()
不修改字符串,它返回一个新字符串。试试这个:
import os
import sys
sys.stdout.write("Test directory: ")
test = sys.stdin.readline().strip('\n')
sys.stdout.write(str(os.path.exists(test)) + "\n")
(我使用sys.stdout.write()
代替print()
用于Python-3不可知性。)
答案 2 :(得分:0)
你需要做的是:
test = test.strip('\n')
或
print(os.path.exists(test.strip('\n'))
对于他们上面所说的内容,strip()返回一个新字符串,因此为了让测试具有新字符串,您必须将其重新分配给它。 (或者在第二种情况下直接在path.exists()中使用新字符串)