Python2.7.1:来自操作系统路径.isdir()

2024-05-14 20:44:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个Python ISO生成应用程序,并从中获得一些wierd输出操作系统路径.isdir(). 我用python2.7.1运行archlinux。在

我有以下文件夹结构:

/home/andrew/create_iso/原材料/
/home/andrew/create_iso/原材料/测试_cd/

[andrew@Cydonia Raw_Materials]$ ls -l total 4 drwxr-xr-x 3 andrew andrew 4096 Feb 23 10:20 test_cd

如您所见,test_cd/是一个普通的Linux文件夹。但是,当我跑的时候操作系统路径.isdir(),根据它是for循环的一部分还是硬编码,我得到了不同的结果。在

import os
>>>for folders in os.listdir('/home/andrew/create_iso/Raw_Materials/'):
...  os.path.isdir(folders)
False

>>>os.path.isdir('/home/andrew/create_iso/Raw_Materials/test_cd')
True

我想也许我得到的输出中有一些东西操作系统列表目录(),但这似乎也证明了这一点:

^{pr2}$

你知道为什么对这些案子的处理不同吗?提前谢谢。在


Tags: test路径文件夹homeforrawoscreate
3条回答

您需要将文件夹附加到“/home/andrew”。。。路径。在

folder_path = '/home/andrew/create_iso/Raw_Materials/'
for folder in os.listdir(folder_path):
    os.path.isdir(os.path.join(folder_path, folder))

它在当前目录中查找test_cd,而不是在使用os.listdir读取的目录中。当前目录可能与包含脚本的目录相同,并且可能不包含名为test_cd的项。os.path.isdir()在找不到文件时返回False,当文件存在但不是目录时,返回。正如其他人所说,使用os.path.join()来构建完整的路径。在

“test_cd”本身不是一个目录。您需要执行一个os.path.join来获得目录的绝对路径,然后调用isdir。在

相关问题 更多 >

    热门问题