770686119 发表于 2019-6-11 10:21:58

os.path.isdir()返回的结果如何理解的?

第一段代码如下:
import os
listdir = os.listdir(os.curdir)
dict1 = dict()
for each in listdir:
    # subSplit = each.split(".")
    # if len(subSplit) == 1 or subSplit == '':
    if os.path.isdir(each):
      dict1.setdefault("文件夹", 0)
      dict1["文件夹"] += 1
      print('%s 是个文件夹' % each)
    else:
      # type_num = str(subSplit)
      type_num = os.path.splitext(each)
      dict1.setdefault(type_num, 0)
      dict1 += 1
for each in dict1:
    print("该文件夹下共有【%s】类型文件%d个" % (each, dict1))

第2段代码如下:
import os
dire = 'C:/Users/hand/PycharmProjects'
all_files = os.listdir(dire)
for each in all_files:
    if os.path.isdir(each):
      print('%s 是个目录' % each)
    else:
      print('%s 不是个目录' % each)
情况说明:C:/Users/hand/PycharmProjects/ 下 有文件也有文件夹
我的问题:第1段代码第10行,这么写是可以打印文件夹的;但是第2段代码的if块不走,只走了else. 这个问题困扰1天了,我还是没想明白,求解答。

770686119 发表于 2019-6-11 10:37:05

我知道了。要在用isdir()前切换工作目录 os.chdir(file_path)
页: [1]
查看完整版本: os.path.isdir()返回的结果如何理解的?