Python 中呼叫命令列命令

2021-06-20 18:24:17 字數 1265 閱讀 3669

今天在使用python時,發現需要直接呼叫系統中已經安裝好的程式,查了一些資料,在這裡稍微做一點總結與大家分享,如有不合適的地方,請大家批評指正。

在python中,我們常常需要呼叫外部程式,在python的文件中,對各種呼叫方式做了說明,主要有以下幾種:

os.system

os.spawn*

os.popen*

popen2.*

commands.*

subprocess

由於python的發展,subprocess有取代上面各種方式的趨勢。在這裡主要介紹subprocess的使用吧。

1. 使用subprocess模組的call方法

from subprocess import call

call(["ls", "-l"])

使用subprocess模組的好處是,程式以子程序的模式執行,可以捕獲到程序的執行狀態和返回的結果

2. 使用subprocess模組的popen方法

from subprocess import popen, pipe

cmd = " dir" #windows 中

p = popen(cmd , shell=true, stdout=pipe, stderr=pipe)

out, err = p.communicate()

print "return code: ", p.returncode

print out.rstrip(), err.rstrip()

或者使用下面的方法獲得命令列執行返回的結果:

import subprocess

com = '"f:\\file path\\a.exe" -c 1 "f:\\file path\\inputfile.dat" "f:\\file path\\outfile"'

p = subprocess.popen(com, shell=true,stdout=subprocess.pipe, stderr=subprocess.stdout)

for line in p.stdout.readlines():

print line,

retval = p.wait()

remark: 在上面片段中,com用了單引號加雙引號,這是因為路徑中file path 之間有空格,對於無空格的路徑名可以取消雙引號。

這篇文章針對subprocess做了比較詳細的介紹,可以看看。

C 呼叫命令列

開關 c表示執行完命令就退出 system.diagnostics.process cmd system.diagnostics.process.start cmd.exe c xcopy c test1 c test2 y q s cmd.waitforexit system.diagnostic...

C 呼叫命令列

開關 c表示執行完命令就退出 system.diagnostics.process cmd system.diagnostics.process.start cmd.exe c xcopy c test1 c test2 y q s cmd.waitforexit system.diagnostic...

system呼叫命令列命令而不顯示命令列視窗

system呼叫命令列命令而不顯示命令列視窗 通常用system呼叫命令列命令時都會彈出黑底白字的命令列視窗,下面的 可以不顯示彈出的命令列視窗。如下 view plain pragma comment linker,subsystem windows entry maincrtstartup 設定...