os.path.exists 不接受变量输入
每当我调用 os.path.exists(variable) 时,它将返回 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\ is/my/path”和“/this is/my/path”传递,但结果相同。
Whenever I call os.path.exists(variable) it will return false but if I call os.path.exists('/this/is/my/path') it will return true.
import os
import sys
test = None
print("Test directory")
test= sys.stdin.readline()
test.strip('\n')
print(os.path.exists(test))
I know that os.path.exists can return false if there is a permissions error but the directories I reference have no restrictions. Sometimes my paths have spaces in them. I have tries passing the path as both '/this\ is/my/path' and '/this is/my/path with the same results.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你必须做
字符串是不可变的,所以
strip()
返回一个新字符串。(至少你的代码对我有用,如果它仍然不适合你,那一定是别的东西。)
You have to do
Strings are immutable, so
strip()
returns a new string.(At least your code works for me then, if it is still not working for you, it must be something else.)
strip()
不会修改字符串,它返回一个新字符串。试试这个:(我使用
sys.stdout.write()
而不是print()
来实现 Python-3 的不可知性。)strip()
does not modify the string, it returns a new string. Try this:(I'm using
sys.stdout.write()
instead ofprint()
for Python-3 agnosticity.)您需要做的是:
或者
对于上面所说的, strip() 返回一个新字符串,因此为了让 test 拥有新字符串,您必须将其重新分配给它。 (或者在第二种情况下直接在 path.exists() 中使用新字符串)
what you would have to do is either:
or
for what they said above, strip() returns a new string so in order for test to have the new string you must reassign it to it. (or in the second case use the new string straight in path.exists())