我知道使用这些模块使生活变得容易得多,但是当我学习Python时,我希望能够巩固基础,然后进入快捷方式。这样,当遇到更大的问题时,我可以分析和解决它。
我希望能够返回 1 个目录中的文件夹和文件总数,例如目录 F:\
我想出了:
import os
def fcount(path):
count = 0
for f in os.listdir(path):
file = os.path.join(path, f)
if os.path.isdir(file):
file_count = fcount(file)
count += file_count + 1
for f in os.listdir(path):
if os.path.isfile(os.path.join(path, f)):
count += 1
return count
path = 'F:\'
print(fcount(path))
这是最终答案。这将为您提供指定目录中的子目录和文件的总数。
如果不使用 os.walk
或使用相同内容的东西,则无法(递归地)获取目录下所有文件的数量。
此信息需要此工作,您无法以其他方式执行此操作。显然,还有其他库正在做类似的工作,但有一些变化,但关键是这主要是同一件事。
这是要做的代码,就像os.walk一样。这是手动递归。
import os
def fcount(path):
count = 0
for f in os.listdir(path):
file = os.path.join(path, f)
if os.path.isdir(file):
file_count = fcount(file)
count += file_count + 1
for f in os.listdir(path):
if os.path.isfile(os.path.join(path, f)):
count += 1
return count
path = 'F:\'
print(fcount(path))
注意:最初在OP中,没有第二个循环。