我正在寻找python中的代码,它允许我获取一个目录并创建一个类似于“ls -lR”的列表,其中包含目录中的所有文件。和子目录。以表格形式显示其名称,大小,上次修改日期,权限,用户等。
还有目录和子目录中所有文件的总大小。
到目前为止,我已经使用了统计信息,时间,大小和权限,并在我制作表格的列表中添加了相同的内容。但要查找文件名,烫发,所有者和组。如果我能得到更简洁的代码?
答案 0 :(得分:5)
要递归遍历文件,您可以使用os.walk
。这将让您知道所需的所有文件名。
获得文件名后,您可以继续使用os.stat
来获取用户和组ID。关于权限,我认为没有任何方法可以直接使用标准库,但您可以使用os.access
逐个测试权限,以找出设置的权限。
答案 1 :(得分:3)
如果您使用的是python 2.x,则可以使用:
commands.getoutput("ls –lR")
对于python 3.0,您可以尝试:
subprocess.check_output("ls -lR")
希望它有所帮助!
修改强>
Commands.getoutput和subprocess.check_output将返回您用作参数的命令的输出。
前:
lslr = commands.getoutput("ls –lR")
print lslr
这将为您提供与当前目录中ls -lR完全相同的输出。然后你可以从那里过滤你需要的任何东西!
要更改当前目录,请使用os.chdir(/ desired / dir)。
答案 2 :(得分:1)
您可以在jcollado提及的os.stat目录中遍历,如果您想使用搜索模式进行搜索,请在该目录中使用glob。
答案 3 :(得分:0)
import os
def iterbrowse(path):
for home, dirs, files in os.walk(path):
for filename in files:
yield os.path.join(home, filename)
for full_name in iterbrowse("/root"):
print full_name