安全兔 发表于 2020-6-4 17:31:46

有一句代码不懂,统计目录下的文件类型

all_files = os.listdir(os.curdir)
type_dict = dict()

for each_file in all_files:
    if os.path.isdir(each_file):
      type_dict.setdefault('文件夹',0)
      type_dict['文件夹'] += 1
    else:
      ext = os.path.splitext(each_file)
      type_dict.setdefault(ext,0)
      type_dict += 1


其中ext = os.path.splitext(each_file)

这一句是怎么理解的?为什么要再最后加个

求大佬解释下

txxcat 发表于 2020-6-4 17:39:20

本帖最后由 txxcat 于 2020-6-4 17:41 编辑

os.path.splitext(each_file)会把文件名分隔成一个数组,第一个元素是文件名,第二个元素是后缀名。例如:
>>> import os
>>> each_file='test.txt'
>>> os.path.splitext(each_file)
'test'
>>> os.path.splitext(each_file)
'.txt'

yhhpf 发表于 2020-6-4 17:45:49

os.path.splitext(path)        分割路径中的文件名与拓展名
所以代码中 ext = os.path.splitext(each_file)的意思就是
例如:“程序.py”这个文件调用os.path.splitext(path)方法后,会返回('程序', '.py')。而在代码后【1】返回对应位置的.py
>>> ext = '程序.py'
       
>>> import os.path
       
>>> os.path.splitext(ext)
       
('程序', '.py')
>>> os.path.splitext(ext)
       
'.py'
>>>
页: [1]
查看完整版本: 有一句代码不懂,统计目录下的文件类型