想统计一下指定文件夹下,指定文件类型的数量,出现了这个错误:TypeError: cannot unpack non-iterable int object(见下图)
找了一下是因为第14行出错,将 j,k=0 改为 j,k=0,0就可以了。解释:报错的原因是函数返回值的数量不一致,查看函数返回值数量和调用函数时接收返回值的数量是不是一致,修改一致即可。
import os
# 查询符合条件的文件
f = open(r'D:\ProfessionalProfile\VectorRelevant\GDEMV2_30m_shandong\pathDEM.txt','w')
j,k=0,0
def file(root, ext):
for i in os.listdir(root): # os.listdir(root) 读取root目录下的文件和目录
# os.path.splitext()将文件名和扩展名分开
ext = os.path.splitext('/' + root + '/' + i) # os.path.splitext()读取文件扩展名
if ext[1]: # 有扩展名时 为文件
global j
if i.count(ex) > 0: # 包含特定字符
pathDEM = root + r'\\' + i
f.write(pathDEM + '\n')
# print(pathDEM) # 输出
j += 1
else:
global k
if i.count(ex) > 0: # 包含特定字符
pathDEM2 = root + r'\\' + i
# print( pathDEM2) # 输出
k += 1
root1 = root + '/' + i # 拼接目录
file(root1, ext) # 递归调用
print('文件数量为:', j)
# print('文件夹数量为:', k)
root = os.getcwd() # 生成目录 root
# 包含的特定字符
ex = 'dem'
# 调用函数
file('D:\ProfessionalProfile\VectorRelevant\GDEMV2_30m_shandong','.tif')