我正在尝试从python中访问ls -l
,以检查文件的最后修改日期。
os.listdir
不显示长列表格式。subprocess.call
显示了格式,但实际上打印了它,并返回0。我希望能够把它放在一个变量中。有什么想法吗?
还有,我试过了
subprocess.call("ls","*.py")
答案是什么
ls: cannot access *.py: No such file or directory
它可以与shell=True
一起工作,但如果有人能解释为什么没有它就不能工作,我将不胜感激。如果你知道如何让它工作,那就更好了。
发布于 2012-03-29 06:21:21
没有shell=True
就不能工作,因为*
是一个shell扩展字符-从*.py
转到以.py
结尾的文件列表是由shell本身执行的功能,而不是ls
或python
。
如果您希望获得通过subprocess
调用的命令的输出,则应该使用subprocess.check_output()
或subprocess.Popen
。
ls_output = subprocess.check_output(['ls', '-l'])
发布于 2021-09-03 06:45:46
有了很好的格式:
import subprocess
print(subprocess.check_output(['ls', '-lh']).decode('utf-8'))
https://stackoverflow.com/questions/9916476
复制相似问题