我正在寻找一个Python代码,它允许我创建一个类似于包含dir中所有文件的“ls -lR”的目录。和子目录。以表格形式显示其名称,大小,上次修改日期,权限,用户等。在linux上的Python中的文件和目录
还有目录和子目录中所有文件的总大小。
我已经使用了截至目前为止的时间,大小和权限的统计数据,并在我制作了表格的列表中添加了相同的数据。但要找到文件名称,烫发,所有者和组。如果我能得到一个整洁的代码?
我正在寻找一个Python代码,它允许我创建一个类似于包含dir中所有文件的“ls -lR”的目录。和子目录。以表格形式显示其名称,大小,上次修改日期,权限,用户等。在linux上的Python中的文件和目录
还有目录和子目录中所有文件的总大小。
我已经使用了截至目前为止的时间,大小和权限的统计数据,并在我制作了表格的列表中添加了相同的数据。但要找到文件名称,烫发,所有者和组。如果我能得到一个整洁的代码?
如果您正在使用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在你的当前目录。然后,由您自行决定是否需要过滤所需的任何内容!
要更改当前的dir,请使用os.chdir(/ desired/dir)。
这个我在终端直接使用,但我想要一个.py文件 – simplycurious 2012-02-29 07:49:53
只需在py文件中添加这个!我更新了我的答案! – caiocpricci2 2012-02-29 13:46:28
要递归遍历文件,你可以使用os.walk
。这将让你知道你需要的所有文件名。
一旦你有文件名,你可以继续使用os.stat
获得用户和组ID。关于权限,我认为没有办法让他们直接使用标准库,但是您可以使用os.access
逐一测试权限以找出设置的权限。
我需要的是可以说,我能够读取所有文件,然后我应该能够将它们存储在表格格式中,每列指定文件属性。 – simplycurious 2012-02-29 07:51:16
的事情是,我不知道用递归这个 – simplycurious 2012-02-29 07:51:34
要存储在一个表格格式,您可以使用['csv'模块(http://docs.python.org/library/csv.html)来自标准库。关于递归,你不必担心,因为'os.walk'会为你做。 – jcollado 2012-02-29 20:05:43
您可以通过jcollado与os.stat如上面所提到的目录遍历,如果你想使用搜索模式搜索,然后在该目录中使用glob。
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
尽管这可能会回答这个问题,但也请添加一个简短的说明,说明您的代码的作用以及为什么它解决了最初的问题。 – user1438038 2017-08-10 07:08:32
你现在在做什么? 'os.walk()'+'os.stat()'? – 2012-02-28 09:26:32
os.listdir(“。”)也可能有帮助。 – 01100110 2012-02-29 00:59:02
我正在寻找递归方法,它允许我以表格格式存储文件规范。 – simplycurious 2012-02-29 07:52:34