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

时间:2018-08-18 13:12:07

标签: python-3.x list os.walk os.path

我查看了os文档,并尝试了四处搜索,但是我找不到执行该操作的方法。

我正试图让os.walk()埋入我选择的路径的所有文件夹,子文件夹和文件中,并打印所有超出特定大小的内容:

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语句将故意失败,因为我想查看子文件夹,但是在运行时

        print(subfolders)

它返回我想要的信息,但是数据全部在列表中:

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

当尝试获取大小或绝对路径时,以这种格式返回数据时,这是不可能的。文件是完全一样的。它只是做我想要做的文件夹。我知道我以前遇到过这个问题,但是我不记得自己是如何解决的。

有人可以帮助我将数据转换为其他格式吗?抱歉,这是一个愚蠢的问题,我仍处于初级阶段,正在尝试学习。

1 个答案:

答案 0 :(得分:0)

在每个组合上使用import scapy.all as scapy

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