我想在Python 3中运行下面的bash命令:
ls -l
我知道我可以做到以下几点:
from subprocess import call
call(['ls', '-l'])
如何将此输出保存到文件,或将其放入列表或集合?
[-rw-r--r--] [1] [name] [staff] [426] [14 Jan 21:52] [HelloWorld.class]
[-rw-r--r--@] [1] [name] [staff] [107] [14 Jan 21:51] [HelloWorld.java]
...
etc.
我希望能够直接访问特定的信息,然后将其添加到集合中,但我不知道将列出多少项。
任何提示、片段或示例都会很有帮助。
6条答案
按热度按时间nkcskrwz1#
对于〉= python3.5,您可以使用subprocess.run:
对于〉= python2.7或〉= python3.0,您可以使用subprocess.check_output:
在python2.7之前,你需要使用较低级别的API,这有点复杂。
n1bvdmb62#
访问
ls -l
输出中的信息的一种方法是解析它。例如,csv.DictReader
可用于将每列Map到字典中的字段:上面的代码将为
ls -l
输出中的每一行打印一个字典,例如:uemypmqf3#
如果您真正想要的是列出一个目录,则使用os.listdir
s4chpxco4#
阅读关于Popen的文章。你要的那一套你得到了
或者做一些
stderr也是如此
可以使用检查进程的状态
或等待它终止
另读
read subprocess stdout line by line
n3ipq98p5#
然后你就可以对输出做任何你想做的事情了。
jobtbby36#
人们已经对它作出了React。不过,万一有人需要它