Python下调用Linux的Shell命令的主意

python cmd命令调用

关于python调用cmd命令:

珍视介绍二种办法:

1.python的OS模块。

  OS模块调用CMD命令有二种方法:os.popen(),os.system().
都是用当下进程来调用。

  os.system是无能为力赢得重返值的。当运维截止后接着往上面实施顺序。用法如:OS.system(“ipconfig”).

  OS.popen带再次来到值的,怎么样获得重返值。如

  p=os.popen(cmd)

  print p.read().获得的是个字符串。

  那五个都以用当下经过来调用,也便是说它们都以阻塞式的。

2.管道subprocess模块。

  运营规律会在此时此刻经过下边发生子进度。

  sub=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)

  sub.wait()

  print sub.read()

python cmd命令调用,pythoncmd命令

关于python调用cmd命令:

关键介绍三种形式:

1.python的OS模块。

  OS模块调用CMD命令有二种艺术:os.popen(),os.system().
都以用当下历程来调用。

  os.system是心有余而力不足赢得重返值的。当运营甘休后随着往上边实践顺序。用法如:OS.system(“ipconfig”).

  OS.popen带再次来到值的,怎么着赢得重回值。如

  p=os.popen(cmd)

  print p.read().获得的是个字符串。

  那七个都以用当下进程来调用,也正是说它们都以阻塞式的。

2.管道subprocess模块。

  运行规律会在脚下进度上边发生子进度。

  sub=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)

  sub.wait()

  print sub.read()

 

cmd命令调用,pythoncmd命令
关于python调用cmd命令: 主要介绍三种艺术: 一.python的OS模块。
OS模块调用CMD命令有二种方式:os.popen(),os.sy…

1.python的OS模块。

使用stream = os.popen(“some_command with
args”)也能做与os.system同样的事,与os.system差异的是os.popen会给你三个像文件的目的从而你可以行使它来做客哪个程序的专业输入、输出。而且popen还有三个变种都以在I/O处理上有轻微不一致。假如你通过2个字符串传递全部东西,你的吩咐会传递给shell;要是你通过三个列表传递他们,你不用顾忌逃避任何事。

  p=os.popen

os.system("some_command with args")将下令以及参数传递给你的系统shell,那很好,因为您能够用那种方式同时运维多少个指令并且能够设置管道以及输入输出重定向。比如:
os.system(“some_command < input_file | another_command >
output_file”)
只是,即使那很方便,不过你须求手动处理shell字符的转义,比如空格等。别的,那也不得不让您运转简单的shell命令而且无法运维外部程序。

  运转规律会在当前经过上面产生子进度。

>>> os.popen('ls -lt')     # 调用os.popen(cmd)并不能得到我们想要的结果 
<open file 'ls -lt ', mode 'r' at 0xb7585ee8> 
>>> print os.popen('ls -lt').read()  # 调用read()方法可以得到命令的结果 
total 6064 
-rwxr-xr-x 1 long  long   23 Jan 5 21:00 hello.sh 
-rw-r--r-- 1 long  long   147 Jan 5 20:26 Makefile 
drwxr-xr-x 3 long  long   4096 Jan 2 19:37 test 
-rw-r--r-- 1 root  root  6030829 Dec 31 15:14 log 
drwxr-xr-x 2 long  long   4096 Dec 28 09:36 pip_build_long 
drwx------ 2 Debian-gdm Debian-gdm 4096 Dec 23 19:08 pulse-gylJ5EL24GU9 
drwx------ 2 long  long   4096 Jan 1 1970 orbit-long 
>>> val = os.popen('ls -lt').read()  # 使用变量可以接收命令返回值 
>>> if "log" in val:     # 我们可以使用in来判断返回值中有木有一个字符串 
...  print "Haha,there is the log" 
... else: 
...  print "No,not happy" 
... 
Haha,there is the log 

  OS模块调用CMD命令有二种办法:os.popen(),os.system().
都以用当下进度来调用。

2. commands 模块

2.管道subprocess模块。

return_code = subprocess.call("echo Hello World", shell=True)

常用的三种艺术:

subprocess模块的call函数。它基本上就像是Popen类并都施用同壹的参数,可是它只简轻巧单的等候命令完结并给你回来代码。比

  print p.read().获得的是个字符串。

3. subprocess模块

  sub.wait()

1.3. os模块的popen方法

  OS.popen带重回值的,怎么样得到重返值。如

Python的exec系统方法同Unix的exec系统调用是一样的。这个办法适用于在子进度中调用外部程序的景况,因为表面程序会交替当前历程的代码,不会重返。(
这些看了点 help(os)  –> search “exec”
的连锁介绍,可是没太搞精通咋使用)

发表评论

电子邮件地址不会被公开。 必填项已用*标注