簡體   English   中英

如何在Python腳本中即時插入代碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM