在python shell裡 如何Source一個腳本?

探討「內嵌」以及「腳本化」這兩個主題的技術-版主XO老師(熟悉的目前是 Tcl,討論內容也會環繞在 Tcl 四周,但是本版還是歡迎其他 Scripting 語言以及任何「內嵌」技術的討論。)

版主: b80203, ghost3401, XO, maa

分享到: Facebook

在python shell裡 如何Source一個腳本?

文章XO » 週一 1月 30, 2006 1:35 pm

在 tclsh 的 Console裡,可以用source xxx.tcl 來執行一個 Tcl Script xxx.tcl. 或是在「命令提示字元」下 tclsh xxxx.tcl 也可以。
我會用類似的「命令提示字元」下 python yyy.py 來執行一個編輯好的python腳本yyy.py,但是卻不知道在已開啟的 python shell 裡,如何去執行這個腳本!有誰知道嗎?

BTW, there is a ActivePython, one of the free python distributions, here at:
http://www.activestate.com/Products/ActivePython/
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5449
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:在python shell裡 如何Source一個腳本?

文章baggio » 週三 2月 01, 2006 2:52 am

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
execfile(filename)
是這個exefile嗎??
我在這個網站找到的
http://www.freebsd.org.hk/html/python/tut_tw/node4.html#SECTION004230000000000000000
baggio
剛學走路的小朋友
 
文章: 4
註冊時間: 週二 1月 18, 2005 12:11 pm
來自: 澳門

Re:在python shell裡 如何Source一個腳本?

文章XO » 週三 2月 01, 2006 9:28 pm

baggio 寫:import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
execfile(filename)
是這個exefile嗎??
我在這個網站找到的http://www.freebsd.org.hk/html/python/tut_tw/node4.html#SECTION004230000000000000000


不是啦!
若是你在目前所在的資料夾,用編輯器寫一個叫做 sample.py 的 Python 腳本的話,可以用

import sample (省略 .py)

就可以把一個 Python 腳本帶入到目前的 Python console.
你上面這一個程式片段是在:
1. 把 os.py 這個腳本 Source 進來,這個腳本(在我機器上)被安裝在 C:\Python23\Lib 底下。
2. 透過 os.py 剛剛調用的模組裡所定義 environ 這個物件的 get 方,去取得環境變數 PYTHONSTARTUP。
3. 如果上述環境變數存在,而且指到一個檔案的話,就透過 execfile 函數去執行該檔案。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5449
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:在python shell裡 如何Source一個腳本?

文章baggio » 週四 2月 02, 2006 1:25 am

我的意思是"不知道execfile這個指令是否等於tcl的sourc指令?"
即execfile("sample.py")是否等於source sample.tcl

因為在python 的 command line內是可以用execfile這個指令去執行一個python script 檔的
baggio
剛學走路的小朋友
 
文章: 4
註冊時間: 週二 1月 18, 2005 12:11 pm
來自: 澳門

Re:在python shell裡 如何Source一個腳本?

文章XO » 週四 2月 02, 2006 2:00 pm

baggio 寫:我的意思是"不知道execfile這個指令是否等於tcl的sourc指令?"
即execfile("sample.py")是否等於source sample.tcl

因為在python 的 command line內是可以用execfile這個指令去執行一個python script 檔的


Yes, you are right. And there is more .... please refer to:
http://groups.google.com.tw/group/comp.lang.python/browse_frm/thread/f545ebc364993545/ce7520fb8b2d96a7?tvc=1&q=execfile+python+usage+globals&hl=zh-TW#ce7520fb8b2d96a7

這一篇裡還介紹了如何傳參數.

簡單來說:

代碼: 選擇全部
import sys
sys.argv = ['test', '-a', 'pathname']
execfile('test')


相當於在命令提示字元視窗哩,下 python test.py -a pathname
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5449
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.


回到 內嵌與腳本化(Embedding & Scripting)

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客