從Python內啟動外部程式

2021-10-04 12:16:54 字數 1735 閱讀 9088

以開啟乙個文字文件為例。

在python中,我們開啟乙個文字文件,開啟的方法很多種,一般是以open方法或者with方法來完成,在方法內定義引數,決定開啟的方式,比如,唯讀,全新開啟,位元組開啟,可讀寫開啟,這時的程序只有python程式執行緒,而沒有多執行緒。

file

=open

('c:\\users\\administrator\\desktop\\aaaa.txt'

,'a+'

)file

.write(

'wo bu shi gou,dan ni shi zhen de gou'

)file

.readlines(

)print

(file

.read())

file

.closed

#這是使用open()方法開啟桌面的乙個文字文件

#追加寫入的方式

with

open

('c:\\users\\administrator\\desktop\\aaaa.txt'

,'a+')as

file

:file

.write(

'hahaha'

)file

.read(

)#和open方法一致,只是換了種寫法,並且免去了

#關閉io流

第二種開啟的方式,也就是檔案的讀取操作,我們可以使用python內的自帶庫os庫來實現,os庫下有乙個os.startfile方法,可以實現打i開文字文件的,但無法指定開啟的方式,也就是該方法是呼叫系統程式開啟檔案。

import os

import subprocess

openfile=os.startfile(

'"c:\program files\mozilla firefox\\firefox.exe"'

)#打**狐瀏覽器

openfile=os.startfile(

'c:\\users\\administrator\\desktop\\aaaa.txt'

)#開啟上面方法寫入的文字文件

#可以看到系統呼叫了火狐程式和note程式

import os

import subprocess

openfile=subprocess.popen(

"c:\program files\mozilla firefox\\firefox.exe"

)#啟動乙個全新執行緒火狐瀏覽器

openfile=subprocess.popen(

['c:\\users\\administrator\\desktop\\aaaa.txt'

],shell=

true

)#開啟上面示例的文字文件

openfile=subprocess.popen(

['start'

,'c:\\users\\administrator\\desktop\\aaaa.txt'

],shell=

true

)#仍然是開啟示例文字文件,兩個引數,

#start和shell=true可以不用寫

#如果,你是在windows下,那麼,如果你使用了#subprocess來開啟外部程式多次,你開啟

#任務管理器會發現會多出很多執行緒。

#多執行緒的意義在於程式間的變數是分開的,沒有互相的影#響。

啟動外部程式

啟動外部程式我們可以使用函式winexec shellexecute和shellexecuteex。我推薦大家使用函式shellexecute,因為它既靈活,又簡單。看看下面的例子,用法就清楚了 啟動乙個程式 shellexecute handle,open lpcstr d 模擬程式.exe nu...

Delphi啟動外部程式

無論是用vc還是用delphi,啟動外部程式,呼叫的都是相同的系統中的api函式,如下delphi 所示 登入按鈕 procedure tform1.label loginclick sender tobject begin end delphi啟動其它程式函式 begin 使用winexec也可以...

Unity啟動外部程式(Process)

啟動外部程式時 直接使用process.start 來啟動外部程式,引數 需要啟動的外部程式所在檔案位置 關閉外部程式時 使用 process.kill 來關閉外部程式 private string exepath void start void ongui if gui.button new re...