这是操作系统中的错误还是有人可以向我解释发生了什么事?

发布于 2024-12-09 13:18:23 字数 225 浏览 0 评论 0原文

>>> os.path.realpath("C:")
'C:\\PythonApp'
>>> os.path.realpath("E:")
'E:\\'

我当前的目录是C:\PythonApp。如果我给它一个未知的路径名(例如 os.listdir ),那么 os 似乎默认为当前目录,那么为什么它适用于 E 而不是 C?

>>> os.path.realpath("C:")
'C:\\PythonApp'
>>> os.path.realpath("E:")
'E:\\'

My current directory is C:\PythonApp. It seems os defaults to the current directory if I give it an unknown path name for something like os.listdir so why does it work for E and not C?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

南笙 2024-12-16 13:18:23

比较一下您得到的结果:

 os.path.realpath("C:\\")

Windows 为每个驱动器保存一个“当前目录”,C:不带斜杠)指的是该目录,而不是驱动器的根目录。
os.path.join 的 python 文档提到了这一点:

请注意,在 Windows 上,由于每个驱动器都有一个当前目录,因此 os.path.join("c:", "foo") 表示相对于驱动器 C: (c:foo) 上当前目录的路径,而不是 c:\foo。

Compare what you get with:

 os.path.realpath("C:\\")

Windows saves a "current directory" for each drive, and C: (without the slash) refers to that, not the root of the drive.
The python docs for os.path.join mention this:

Note that on Windows, since there is a current directory for each drive, os.path.join("c:", "foo") represents a path relative to the current directory on drive C: (c:foo), not c:\foo.

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