os.walk() 返回列表中的一些数据。 os.path.getsize() 需要不同的数据类型才能工作

os.walk() returning some data in lists. os.path.getsize() needs a different data type to work

我查看了 os 文档并尝试四处搜索,但找不到如何执行此操作。

我正在尝试让 os.walk() 隐藏到我已经 chosen 的路径的所有文件夹、子文件夹和文件中,并打印超过一定大小的所有内容:

for folders, subfolders, files in os.walk("/Users/my_user_name/Downloads"):
    if os.path.getsize(folders) > 2000:
        print(os.path.getsize(folders))
        print(os.path.abspath(folders))
    elif os.path.getsize(subfolders) > 0:
        print(os.path.getsize(subfolders))
        print(os.path.abspath(subfolders))

第一个 if 语句将 purposelly 失败,因为我想查看子文件夹,但是当 运行

        print(subfolders)

它returns我想要的信息,但数据都在列表中:

['Hearthstone-Setup.app', 'PokerStarsUK']
['Contents']
['_CodeSignature', 'MacOS', 'Resources']
[]
[]
[]
[]

当尝试获取大小或绝对路径时,如果以这种格式返回数据,这不是 possible。文件是完全相同的方式;只有文件夹可以执行我想要它执行的操作。我知道我以前遇到过这个问题,但我不记得我是如何解决的。

谁能帮我把数据转换成不同的格式?对不起,如果这是一个愚蠢的问题,我还处于初学者阶段,正在努力学习。

对每个组合使用 os.path.join

for folder, subfolders, files in os.walk("/Users/my_user_name/Downloads"):
    # Check all subfolders directly in folder
    for subfolder in subfolders:
        print(os.path.join(folder, subfolder))
    # Check all files directly in folder
    for file in files:
        print(os.path.join(folder, file))

或使用glob

import glob
for file in glob.glob("/Users/my_user_name/Downloads/**/*", recursive=True):
    print(file)