[英]how to insert code in a python script on-the-fly?
我不確定這叫什么,但這就是我所需要的。 python腳本中存儲在另一個文件中的一部分代碼。 腳本運行時,將自動插入代碼...。類似於函數,但不傳遞參數。
line 100
line 101
line 102
line 103
line 104
我希望將101-103行存儲在另一個文件中。 執行python腳本時,系統會按原樣自動插入第101-103行。 所以現在我的代碼看起來像這樣
line 100
read code from another file
line 104
更好的是,如果我能夠選擇要在第100和104行之間插入的代碼(例如,根據條件從文件1或文件2中插入)
我不想使用函數,因為它涉及很多變量傳遞。
if condition==1:
execfile('filename1.py',globals(),locals())
else:
execfile('filename2.py',globals(),locals())
更新:為了顯示可以前后訪問變量:
f1.py:
x='ha'
execfile('f2.py',globals(),locals())
print('after: '+x)
f2.py
print('before: '+x)
x='blah'
輸出:
before: ha
after: blah
因此,x的值將傳遞到f2.py,然后可以在f1.py中訪問在那里設置的值。
您可以為此使用m4
。 把它放在stuff.py
:
print 1
print 2
include(other.py)
print 3
print 4
而這在other.py
:
print 'a'
print 'b'
並以這種方式運行:
m4 stuff.py | python
上面假設一個* nix系統(因為那些具有m4
)。 如果您的系統具有C編譯器但沒有m4
,則可以使用C預處理器! 只需將include(other.py)
更改為#include "other.py"
並使用cpp
(或系統上調用的C預處理程序)而不是m4
。 這比較hacky,但可能更便於攜帶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.