如何使用python获取linux目录/文件权限字符串

如何使用python获取linux目录/文件权限字符串,python,python-3.x,Python,Python 3.x,我需要在python中获取权限字符串,如drwxr-xr-x,drwxrwxr-x: drwxr-xr-x 2 root root 4.0K Dec 12 18:46 mount_test2 drwxrwxr-x 2 root root 4.0K Dec 12 18:47 mount_test 您可以使用子流程模块,得到如下答案: from subprocess import Popen, PIPE p = Popen(['ls', '-l', 'path/to/your/dir'], s

我需要在python中获取权限字符串,如drwxr-xr-xdrwxrwxr-x

 drwxr-xr-x 2 root root 4.0K Dec 12 18:46 mount_test2
 drwxrwxr-x 2 root root 4.0K Dec 12 18:47 mount_test

您可以使用
子流程
模块,得到如下答案:

from subprocess import Popen, PIPE
p = Popen(['ls', '-l', 'path/to/your/dir'], stdout = PIPE, stderr = PIPE)
out, err = p.communicate()
for elem in out.split('\n'):
    permission = elem.split(' ')[0]
您的
out
变量将包含您想要的答案,您可以这样处理它:

from subprocess import Popen, PIPE
p = Popen(['ls', '-l', 'path/to/your/dir'], stdout = PIPE, stderr = PIPE)
out, err = p.communicate()
for elem in out.split('\n'):
    permission = elem.split(' ')[0]
但是有很多方法可以处理输出中的字符串

PYTHON3的注意事项:在执行以下操作之前,需要对输出进行解码:

out = out.decode('utf-8')

os.system('ls-l')
也许吧?谢谢。我需要签入一个特定的目录。比如/tmp/test。如何执行此操作?通过在
ls-l
命令中指定目录,我将更新我的答案。有时它在
中显示elem in out.split('\n')的类型错误:
TypeError:需要类似字节的对象,而不是'str',此类型错误仅在python 3+版本中显示。在python2.7中,它工作正常,在python3中,您需要先解码类似字节的对象:
out=out.decode('utf-8')