os.path.exists 不接受变量输入

发布于 2024-09-28 01:09:53 字数 387 浏览 3 评论 0原文

每当我调用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

葬﹪忆之殇 2024-10-05 01:09:53

你必须做

test = test.strip("\n")

字符串是不可变的,所以 strip() 返回一个新字符串。

至少你的代码对我有用,如果它仍然不适合你,那一定是别的东西。

You have to do

test = test.strip("\n")

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.)

攒眉千度 2024-10-05 01:09:53

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 的不可知性。)

strip() does not modify the string, it returns a new string. Try this:

import os
import sys
sys.stdout.write("Test directory: ")
test = sys.stdin.readline().strip('\n')
sys.stdout.write(str(os.path.exists(test)) + "\n")

(I'm using sys.stdout.write() instead of print() for Python-3 agnosticity.)

独自←快乐 2024-10-05 01:09:53

您需要做的是:

test = test.strip('\n')

或者

print(os.path.exists(test.strip('\n'))

对于上面所说的, strip() 返回一个新字符串,因此为了让 test 拥有新字符串,您必须将其重新分配给它。 (或者在第二种情况下直接在 path.exists() 中使用新字符串)

what you would have to do is either:

test = test.strip('\n')

or

print(os.path.exists(test.strip('\n'))

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())

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文