如何在即时的python脚本中插入代码?

时间:2015-01-21 05:13:17

标签: python

我不确定这叫什么,但这就是我需要的。 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中插入)
我不想使用函数,因为它涉及大量的变量传递。

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运行。这更加黑客,但可能更便携。