Python OS模块打印语句

时间:2018-08-08 22:38:48

标签: python operating-system

目录内容如下

 C:\Test\newtext.txt
 C:\Test\Test1
 C:\Test\Test1\newtext.txt
 C:\Test\Test2

count变量被打印三次。为什么要打印 3次?

import os
dir = 'C:\\Test'
print(os.listdir(dir))
count = 0
def filepath(dir):
    global count
    for path in os.listdir(dir):
        childPath = os.path.join(dir,path)
        if os.path.isdir(childPath):
            filepath(childPath)
        else:
            count += 1
            print(childPath)
    print(count)
filepath(dir)

2 个答案:

答案 0 :(得分:1)

您确定打印语句不在for循环中吗?似乎您的代码格式已关闭,因为在函数ID | Value --------------------- | ------------------------------- AAA1 | 1.7554 ANKHD1-EIF4EBP3 | 0.5174 HLA-B | 11.7659 HLA-A | 18.0851 语句后未对for循环和全局变量进行缩进。

答案 1 :(得分:0)

您打算在程序中输出什么。您正在递归调用自己的filepath函数,该函数针对每个目录进行调用。并且在进行每个函数调用时都要打印计数。

我猜您正在尝试打印给定文件夹中的文件数。只需将print(count)语句放在函数定义之外即可。