事情是这样的,我需要使用python的os模块进行获取文件夹内的文件,但是过程中遇到了一些问题!
这是我的一个样例文件夹
这是没问题的代码:
import os
path = r"C:\Users\YKJ\Desktop\测试"
name_list = os.listdir(path)
for file in name_list:
file_list = os.path.splitext(file)
print(file_list)
这是运行结果
('新建 BMP 图像', '.bmp')
('新建 Microsoft PowerPoint 演示文稿', '.pptx')
('新建 Microsoft Publisher Document', '.pub')
('新建 Microsoft Word 文档', '.docx')
('新建 文本文档', '.txt')
('新建文件夹', '')
可以很成功的把文件名和文件后缀名进行分离!
但是!
我把文件里的添加上一个这么一个目录!
然后我们在看看运行结果!
('新建 BMP 图像', '.bmp')
('新建 Microsoft PowerPoint 演示文稿', '.pptx')
('新建 Microsoft Publisher Document', '.pub')
('新建 Microsoft Word 文档', '.docx')
('新建 文本文档', '.txt')
('新建文件夹', '')
('新建文件夹', '.123')
最后会出现问题?
他把目录的文件夹命名给区分开了!
最后:
该怎么区分一个文件里的目录和文件呢?
被这个小bug卡住了!
我没注意看代码, 这样试试,把目录拼接起来
import os
path = r"C:\Users\YKJ\Desktop\测试"
name_list = os.listdir(path)
for file in name_list:
file_path = os.path.join(check_path, file)
if os.path.isdir(file_path):
print("目录",file)
else:
file_list = os.path.splitext(file)
print(file_list)
问题已解决!附上代码!感谢大家!
import os
path = r"C:\Users\YKJ\Desktop\测试"
file_list = os.walk(path)
for file_all in file_list:
for file in file_all[2]:
file_list = os.path.splitext(file)
print(file_list)
结果图!
('新建 BMP.图像', '.bmp')
('新建 Microsoft PowerPoint 演示文稿', '.pptx')
('新建 Microsoft Publisher Document', '.pub')
('新建 Microsoft Word 文档', '.docx')
('新建 文本文档', '.txt')
总结:
因为思维被os.path.isfile和os.path.isdir卡住了,应该跳出思维换个角度去想,问题就迎刃而解了!
感谢上面两位为我提供帮助的朋友,因为我是第一次在csdn社区上进行提问,没想到短短几分钟就有人提出了建议,让我感到非常的惊讶,这个世界上好人还是占多数的!再一次感谢大家,让我在csdn上有种家的感觉了
有个简单方法,cmd指令dir+文件夹即可,os.system可调用cmd指令
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!