Linux上Python中的文件和目录

时间:2012-02-28 09:14:47

标签: python linux file list directory

我正在寻找python中的代码,它允许我获取一个目录并创建一个类似于“ls -lR”的列表,其中包含目录中的所有文件。和子目录。以表格形式显示其名称,大小,上次修改日期,权限,用户等。

还有目录和子目录中所有文件的总大小。

到目前为止,我已经使用了统计信息,时间,大小和权限,并在我制作表格的列表中添加了相同的内容。但要查找文件名,烫发,所有者和组。如果我能得到更简洁的代码?

4 个答案:

答案 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