我试图使用python子进程运行find命令,以便列出目录中存在的文件。其中某些文件/子目录没有访问权限。我只想跳过这些文件并列出我可以访问的文件。
从终端运行find / -type f
只是提及权限被拒绝的目录,并继续打印可访问的文件。像这样
/var/cache/apt/pkgcache.bin
/var/cache/apt/srcpkgcache.bin
find: ‘/var/cache/apt/archives/partial’: Permission denied
/var/cache/apt/archives/lock
/var/cache/jaeger/jaeger-1.16.0-linux-amd64.tar.gz
我正尝试使用python子进程调用来模仿相同的行为,如下所示。但是,代码只是抛出一个异常Command '['find', '/', '-type', 'f']' returned non-zero exit status 1
def subprocess_check_output(command):
try:
output = subprocess.check_output(command, universal_newlines=True)
except Exception as e:
print(e)
sys.exit(1)
else:
return output
command = ['find', dir, '-type', 'f']
accessible_files = subprocess_check_output(command).splitlines()
如何解决此问题以获取所有可访问文件的列表?