目录内容如下
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)
答案 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)
语句放在函数定义之外即可。