第30讲第0题,关于‘使用os.curdir’的提问
本帖最后由 孤独的美食家 于 2020-10-2 18:53 编辑代码来自第30讲第0题
import os
all_files = os.listdir(os.curdir) # 使用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
for each_type in type_dict.keys():
print('该文件夹下共有类型为【%s】的文件 %d 个' % (each_type, type_dict))
如果使用os.curdir 或者‘.’当作path使用,if os.path.isdir(each_file):可以运行,如上图
如果使用绝对路径 或者相对路径当作path使用,if os.path.isdir(each_file):就不运行了,如下图
这是怂麽原因呢,我头炸了 本帖最后由 hrp 于 2020-10-2 19:03 编辑
非当前目录下,判断isdir、isfile等的参数需为完整路径,如r'c:\python34xxx' + each_file而不是each_file。
建议下次发代码,不要发图片,发代码我还能复制下来直接写注释,答的更详细。 import os
path = '你的路径'
all_files = os.listdir(path) # 使用os.curdir表示当前目录更标准
type_dict = dict()
for each_file in all_files:
if os.path.isdir(path + '\\' + each_file):
type_dict.setdefault('文件夹', 0)
type_dict['文件夹'] += 1
else:
ext = os.path.splitext(each_file)
type_dict.setdefault(ext, 0)
type_dict += 1
for each_type in type_dict.keys():
print('该文件夹下共有类型为【%s】的文件 %d 个' % (each_type, type_dict))
isdir() 要用绝对路径,否则会判断当前目录下的 hrp 发表于 2020-10-2 19:00
非当前目录下,判断isdir、isfile等的参数需为完整路径,如r'c:\python34xxx' + each_file而不是each_file ...
谢谢你的解答,言简意赅,改了一下代码果然对了。
页:
[1]