' ./&#39之间的区别是什么?和' ../'什么时候使用os.path.isdir()?

时间:2017-03-23 07:24:00

标签: python os.path

我是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

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

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

打印:

Daily
False
renafile.py
False
script
False

他们有区别吗?

1 个答案:

答案 0 :(得分:9)

它返回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))