目錄
1.問題描述
2. 解決方法
2.1 獲取呼叫的指令碼路徑
2.2執行python指令碼
3.總結
python版本:python3.7
os平台:windows7
python 指令碼執行的時候去呼叫執行其他指令碼,使用getcwd() 獲取指令碼路徑不對。
指令碼timerexec.py 呼叫指令碼
目錄c:\user\administrator\timerexec.py
t.py 被呼叫指令碼
目錄c:\user\administrator\other\t.py
一般獲取檔案的名字資訊由以下幾個方式
__file__ 使用獲取的為執行指令碼的路徑,通常是相對路徑。
os.path.abspath(__file__)可以獲取絕對路徑,但是絕對路徑包含執行的指令碼檔名稱。
sys.path[0] 獲取的是指令碼的路徑,不包括檔名稱
**如下:
import os,sys
curpath=sys.path[0]
execpath=curpath+"\\other\\t.py"
#獲取需要執行的指令碼路徑
import os,sys
curpath=sys.paht[0]
execpath=curpath+"\\other\\t.py"
#獲取需要執行的指令碼路徑
#執行指令碼,先判斷指令碼是否存在
if os.path.exists(execpath):
os.system("python %s"%(execpath))
os.system("python %s"%(execpath))
此命令用來執行系統命令。
執行系統命令時當前的指令碼會暫停等待呼叫的腳步執行完畢。
import os,sys
print("file:"+__file__)#獲取指令碼檔名
print("abspath:"+os.path.abspath(__file__))#獲取執行指令碼的絕對路徑
#獲取執行指令碼的路徑,指令碼巢狀呼叫時使用此功能來獲取路徑
print("curdir:"+sys.path[0])
#獲取當前的執行環境路徑
print("cwddir:"+os.getcwd())
shell指令碼中呼叫其他指令碼
目前來說有三種方法 1.指令碼絕對路徑 這個方式是最普通的,底層呼叫的是fork實現,執行的時候開乙個子shell執行呼叫的指令碼,子shell執行的時候,父shell還在 子shell執行完畢後返回父shell,子shell從父shell繼承環境變數,但是子shell中的環境變數不會帶回父shel...
簡單了解python呼叫其他指令碼方法例項
1.用python呼叫python指令碼 usr local bin python3.7 import time import os count 0 str python b.py result1 os.system str print result1 while true count coun 1...
3種python呼叫其他指令碼的方法
1.用python呼叫python指令碼 usr local bin python3.7 import time import os count 0 str python b.py result1 os.system str print result1 while true count count ...