我不确定这叫什么,但这就是我需要的。 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中插入)
我不想使用函数,因为它涉及大量的变量传递。
答案 0 :(得分:3)
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中可以访问那里设置的值。
答案 1 :(得分:0)
您可以使用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
运行。这更加黑客,但可能更便携。