【发布时间】:2018-03-18 10:28:56
【问题描述】:
我正在用 python 编写自己的 shell。现在我正在尝试在我的 shell 中实现 cd 命令。
执行这个命令的函数有几个变量:
self.current_dir = "C:\\" - 默认值,它的变化取决于用户使用 cd 命令的输入
dir = "..." - 用户键入的请求目录。 “...”是导致问题的输入示例。
这是我的代码:
def command_cd(self, dir):
if os.path.isdir(self.shell.current_dir + dir):
self.shell.current_dir = self.shell.current_dir + dir + "\\"
问题在于,由于某些奇怪的原因,os.path.isdir(self.shell.current_dir + dir) 在用户键入点时返回True(就像我上面给出的变量示例输入一样)。
即使你改变点的数量(甚至超过 5 个点)也会出现问题,我真的不知道是什么原因造成的。
显然没有名为 ... 或类似名称的文件夹。
如果我的问题不够清楚,请发表评论,我会修改它
【问题讨论】:
-
.指向当前目录,..指向父目录。 -
@wim 哦,好的。你知道当我放 3 个点或 4 个点时它指的是什么吗?你认为它只是混淆了他们两个?
-
我不使用 Windows,所以无法回答。这可能是一个错误,Python 的某些部分在 Windows 上没有得到很好的维护。
-
os.path.isdir("...")在 POSIX 机器上返回 False,当显式导入ntpath时ntpath.isdir("...")也是如此。
标签: python windows shell os.path