使用 os.path.isdir() 时,'./' 和 '../' 有什么区别?

What's the difference between './' and '../' when using os.path.isdir()?

我是 python 的新手。今天有件事让我感到困惑。路径c:\python\下,有好几折。我在这个路径下编辑了一个python脚本,运行代码:

for dir_name in os.listdir("./"):
        print dir_name
        print os.path.isdir(dir_name)

它打印:

Daily
True
renafile.py
False
script
True

但是当我将脚本放在路径 C:\python\ 下的 Daily 和 运行 代码中时:

for dir_name in os.listdir("../"):
        print dir_name
        print os.path.isdir(dir_name)

它打印:

Daily
False
renafile.py
False
script
False

他们有区别吗?

返回 false 是因为当您使用文件夹名称调用 isdir 时,python 会在当前目录中查找该文件夹 - 除非您提供绝对路径或相对路径。

由于您在 "../" 中列出文件,您应该这样调用 isdir:

print os.path.isdir(os.path.join("../", dir_name))

您可能希望将代码修改为:

list_dir_name = "../"
for dir_name in os.listdir(list_dir_name):
  print dir_name
  print os.path.isdir(os.path.join(list_dir_name, dir_name))