Python:从其他脚本读取和执行行(或复制它们)?

时间:2012-11-23 14:02:49

标签: python file parsing file-io import

考虑一个python脚本:

####
#Do some stuff#

####
#Do stuff from separate file

####
#Do other stuff

实现中间位的最佳方法是什么(做另一个文件中定义的东西)?我被告知在C ++中有一个命令可以实现我想要做的事情。 Python中是否有等价物?

e.g。如果A.py是:

print 'a'

### import contents of other file here

print 'm'

和B.py是:

print 'b'
print 'c'
print 'd'

然后所需的A.py输出为:

a
b
c
d
m

B.py实际上不包含打印语句,而是包含变量赋值和简单流控制,它们不会与A.py中声明或定义的任何内容冲突。我知道我可以将B.py的内容放入函数中,将其导入A.py并在所需的位置调用此函数。如果我希望B.py的内容返回一些单值,那就没问题了。但是B.py的内容可能包含20个变量赋值。

我想那时我真正想做的不是在A.py中执行B.py的内容,而是动态修改A.Py以包含A.py中某些所需的行,内容B.py.然后,显然,执行更新的A.py.

非常感谢的想法和提示。

2 个答案:

答案 0 :(得分:1)

我认为这不是一个好的编程习惯,但你可以使用execfile来执行另一个文件中的所有代码。

#a.py
a = a + 5

#b.py
a = 10
execfile("a.py")
print a 

如果您运行b.py,则会打印'15'。

答案 1 :(得分:0)

执行此操作的方法是将代码放在函数中的b中,然后从:

导入它
# b.py
def foo():
    print 'b'
    print 'c'
    print 'd'


# a.py
import b

print 'a'
b.foo()
print 'm'