递归获取所有文件(带有绝对路径)的列表,并使用Python获取其UID



我正在尝试编写一个python脚本,以递归中给定目录中具有绝对路径的所有文件,并在其前面列出其UID和文件所有者。(类似:LS -LR(我写了这本书,但在执行结束时给我一个错误:

import os
for folder, subfolders, files in os.walk(os.getcwd()):
    for file in files:
        filePath = os.path.abspath(file)
        print(filePath, os.stat(file).st_uid)
import os
import glob
for filename in glob.iglob('./**/*', recursive=True):
    print(os.path.abspath(filename), os.stat(filename).st_uid)

需要python 3.5或更高使用glob((在Python?

中递归查找文件

files只是文件名本身,不是从当前位置到文件的路径。

尝试

import os
for folder, subfolders, files in os.walk(os.getcwd()):
    for file in files:
        filePath = os.path.abspath(os.path.join(folder, file))
        print(filePath, os.stat(file).st_uid)

os.path.abspath()不做您认为做的事情。它或多或少只是将getcwd()的结果预先到您传递的字符串中,它对该文件的实际位置一无所知。因此,当您的循环在子目录中进入名称时,abspath()是错误的,因为当前目录仍然是上述级别。

您可以从os.walk的输出中获取正确的目录名称,请参阅此处的文档。

相关内容

  • 没有找到相关文章

最新更新