使用 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))
我是 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))