如何使用python获取linux目录/文件权限字符串
我需要在python中获取权限字符串,如drwxr-xr-x,drwxrwxr-x:如何使用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
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')