我正在构建一个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}$你知道为什么对这些案子的处理不同吗?提前谢谢。在
您需要将文件夹附加到“/home/andrew”。。。路径。在
它在当前目录中查找
test_cd
,而不是在使用os.listdir
读取的目录中。当前目录可能与包含脚本的目录相同,并且可能不包含名为test_cd
的项。os.path.isdir()
在找不到文件时返回False
,当文件存在但不是目录时,返回。正如其他人所说,使用os.path.join()
来构建完整的路径。在“test_cd”本身不是一个目录。您需要执行一个
os.path.join
来获得目录的绝对路径,然后调用isdir
。在相关问题 更多 >
编程相关推荐