我正在尝试从python中找到ls -l
,以检查文件的最后修改日期。
os.listdir
未显示长列表格式。
subprocess.call
显示格式,但实际打印它,并返回0.我希望能够将它放在变量中。有什么想法吗?
另外,我试过
subprocess.call("ls","*.py")
回答
ls: cannot access *.py: No such file or directory
它可以与shell=True
一起使用,但如果有人能解释为什么没有它就行不通,我会很感激。如果你知道如何使它工作,那就更好了。
答案 0 :(得分:3)
没有shell=True
它不起作用,因为*
是一个shell扩展字符 - 从*.py
到以.py
结尾的文件列表是执行的函数由shell本身而不是ls
或python
。
如果要获取通过subprocess
调用的命令的输出,则应使用subprocess.check_output()
或subprocess.Popen
。
ls_output = subprocess.check_output(['ls', '-l'])