【发布时间】:2020-11-25 09:55:14
【问题描述】:
这似乎是一个非常基本的问题,但我仍然感到困惑。我有一个包含反斜杠的 Windows 路径,为了逃避它的特殊含义,我使用了\\。
当我使用print 函数获取路径时,给了我实际的回报:
>>> print("C:\\Users\\2.0Dev\\8\\F000B101\\POD280-51\\Resources")
C:\Users\2.0Dev\8\F000B101\POD280-51\Resources
然而,当它作为参数传递给 python 中的两个不同函数时,行为是不同的:
>>> rsrc_dir="C:\\Users\\2.0Dev\\8\\F000B101\\POD280-51\\Resources"
>>> os.path.isdir(rsrc_dir)
>>> False
>>> os.mkdir('C:\\Users\\2.0Dev\\8\\F000B101\\POD280-51\\Resources')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 3] The system cannot find the path specified:'C:\\Users\\2.0Dev\\8\\F000B101\\POD280-51\\Resources'
谁能解释一下这两个函数如何解释同一个参数。另外,如何返回与print函数相同的格式化字符串。
非常感谢。
【问题讨论】:
-
C:\\Users\\2.0Dev\\8\\F000B101\\POD280-51\\存在吗?C:\\Users\\2.0Dev\\8\\F000B101\\存在吗?C:\\Users\\2.0Dev\\8\\存在吗?确保所有早期目录都存在或使用os.markdirs(..)来创建它们。 -
@PatrickArtner 虽然中间目录不存在,但
mkdir可以创建它们。我对其进行了测试,发现它在 powershell 上更有效。 -
这是否意味着 python
os.mkdir和 powershellmkdir命令的行为不同? -
你为什么认为powershell和pyhton是一样的? os.mkdirs 创建中间目录。 os.mkdir 没有。文档是你的朋友....
-
@PatrickArtner 谢谢!你是对的。我按照文档进行操作,然后得到了答案。我确实使用
makedirs创建中间目录。
标签: python string mkdir backslash os.path