|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码实现功能,统计指定文件夹内各类型文件数量
- import os
- director = input('请输入指定文件夹:')
- all_files = os.listdir(director)
- 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)[1]
- type_dict.setdefault(ext,0)
- type_dict[ext] += 1
- for each_type in type_dict.keys():
- print('该文件夹下共有类型为【%s】的文件%d个'%(each_type,type_dict[each_type]))
复制代码
实现方法有两种,第一种是直接使用os.listdir()列举指定目录中的文件
另外一种是,先使用os.chdir()更改工作目录到指定文件夹,然后在使用os.lostdir(os.curdir)列举当前文工作目录下的文件
即:
- import os
- director = input('请输入指定文件夹:')
- os.chdir(director)
- 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)[1]
- type_dict.setdefault(ext,0)
- type_dict[ext] += 1
- for each_type in type_dict.keys():
- print('该文件夹下共有类型为【%s】的文件%d个'%(each_type,type_dict[each_type]))
复制代码
两种方法都可以实现
但是类似的,计算指定文件夹下各文个文件的大小
- import os
- director = input('请输入指定文件:')
- os.chdir(director)
- all_files = os.listdir(os.curdir)
- file_dict = dict()
- for each_file in all_files:
- if os.path.isfile(each_file):
- file_size = os.path.getsize(each_file)
- file_dict[each_file] = file_size
- for each in file_dict.items():
- print('%s[%dBytes]'%(each[0],each[1]))
复制代码
却只能以第二种方法实现,也就是先更改工作目录到指定文件夹,在列举当前工作目录下的文件
第一种直接的方法无法实现了??
下面的代码无法实现
- import os
- director = input('请输入指定文件:')
- all_files = os.listdir(director)
- file_dict = dict()
- for each_file in all_files:
- if os.path.isfile(each_file):
- file_size = os.path.getsize(each_file)
- file_dict[each_file] = file_size
- for each in file_dict.items():
- print('%s[%dBytes]'%(each[0],each[1]))
复制代码
为什么??求大佬指点
相关代码 isfile getsize 等请指定完整文件路径
- import os
- director = input('请输入指定文件夹:')
- all_files = os.listdir(director)
- file_dict = dict()
- for each_file in all_files:
- full = os.path.join(director, each_file)
- #print(full)
- if os.path.isfile(full):
- file_size = os.path.getsize(full)
- file_dict[each_file] = file_size
- for each in file_dict.items():
- print('%s[%dBytes]'%(each[0],each[1]))
复制代码
|
|