Python脚本在终端执行命令
有几种方法可以做到这一点:
一个简单的方法是使用os模块:用于 :
import os
os.system("ls -l")
更复杂的事情可以与子模块来实现例如:
import subprocess
test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE)
output = test.communicate()[0]
您应该还考虑commands.getstatusoutput
这将返回长度为2的元组.. 第一个是返回整数(0 - 当所述命令是成功的) 第二是如将在终端中所示的整个输出。
对于LS
import commands
s=commands.getstatusoutput('ls')
print s
>> (0, 'file_1\nfile_2\nfile_3')
s[1].split("\n")
>> ['file_1', 'file_2', 'file_3']
在桌面GUI,(有些你可能不使用它),你可以leafpad桌面快捷方式,它有它的命令来打开deignated文件。如果你复制并粘贴到你的Python解释器中,它应该可以工作。 (我不能确定这会工作,但为什么不试试!) 对不起,所有的拼写错误...我只有11. 这个信息是不是组成!这只是我在制作一个名字时很懒惰!请记住,我只有11岁!
lol whattttttttt – mikebertiean 2017-09-07 16:37:13
lmfao这是什么 – Gianlucca 2017-12-08 19:43:40
我更喜欢子模块的用法:
from subprocess import call
call(["ls", "-l"])
原因是,如果你想传递一些变量在脚本这给了非常简单的方法,例如采用代码
abc = a.c
call(["vim", abc])
下面的部分
import os
os.system("echo 'hello world'")
这应该工作。我不知道如何将输出打印到python Shell中。
我不想让你失望,但。你应该使用子进程处理所有事情。这样更安全。 subprocess.call()会给你一个很好的界面,以取代简单的调用形式。 – 2011-03-24 20:35:43
感谢您的答复队友。将在Ubuntu桌面上使用python作为我的第一个应用程序,这对我真的很有帮助。 – LinuxBill 2013-01-16 10:55:10
如何获得命令的完整响应,'os.system(“nslookup gmail.com”)'只返回最后一行'0',但我想获得完整的响应。 – 2015-11-29 10:06:02