gpt4 book ai didi

python - os.listdir 和 os.path.isdir 混淆,isdir 是随机的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:44 25 4
gpt4 key购买 nike

下面是列出文件夹内容的简单过程:

def some_process(self):


dir3 = os.listdir('/Users/somepath/programming/somepathanother/Data_samples')
for d in dir3:
if os.path.isdir(d):
print "DIR: " + d
elif os.path.isfile(d):
print "FILE: " + d


print "PATH THREE:"
print str(dir3)

sys.exit(0)

Data_samples 文件夹的实际内容是:目录 1目录 2目录 3目录4文件.zip另一个文件.zip目录5

该过程的输出未按预期工作。对于一个文件,它只打印:

文件 .DS_Store没有别的(应该打印出 file.zip 和 anotherfile.zip)

我还意识到,如果我将 resourcetest.py 文件及其相应的 ini 文件复制到该文件夹​​中并运行它,它就会看到它

FILE: .DS_Store
FILE: resourcetest.ini
FILE: resourcetest.py

print str(dir3) 的完整输出

PATH THREE: 
['.DS_Store', 'dir1', 'dir2', 'dir3', 'dir4', 'resourcetest.ini','resourcetest.py', 'test.file', 'test.zip', 'dir5']

然后还应该将 dir1 dir2 dir3 dir4 打印为 DIR: ",但这些都没有发生,我也不知道为什么,尽管奇怪的是,如果我从列出的文件夹中执行这段代码,它确实会显示所有内容正确。

这是从 mac os x 终端运行 python 2.7 的异常,还是我在这里遗漏了其他东西。我对 listdir 和 isdir 用法的想法是错误的吗?

最佳答案

listdir 只给出名称,而不是完整路径。您将需要创建完整路径:

for d in dir3:
path = os.path.join('/Users/somepath/programming/somepathanother/Data_samples', d)
if os.path.isdir(path):
...

关于python - os.listdir 和 os.path.isdir 混淆,isdir 是随机的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52246995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com