Python:读取并执行其他脚本中的行(或将它们复制到)?
考虑一个python脚本:Python:读取并执行其他脚本中的行(或将它们复制到)?,python,file,parsing,file-io,import,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' a b c d m B
####
#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'
a
b
c
d
m
B.py是:
print 'b'
print 'c'
print 'd'
那么A.py的期望输出是:
print 'a'
### import contents of other file here
print 'm'
a
b
c
d
m
py实际上并不包含打印语句,而是变量赋值和简单的流控制,它们不会与A.py中声明或定义的任何内容冲突。我知道我可以将B.py的内容放入函数中,将其导入a.py并在所需的位置调用该函数。如果我想让B.py的内容返回某个单一值,那就好了。但是B.py的内容可能包含例如二十个变量赋值
我想我真正想要做的不是在A.py中执行B.py的内容,而是动态地修改A.py,在A.py中的某个所需行包含B.py的内容。然后,显然,执行更新后的A.py
非常感谢您的想法和建议 这样做的方法是将代码放在函数的b中,然后从a导入:
# b.py
def foo():
print 'b'
print 'c'
print 'd'
# a.py
import b
print 'a'
b.foo()
print 'm'
我认为这不是一个好的编程实践,但您可以使用它来执行另一个文件中的所有代码
#a.py
a = a + 5
#b.py
a = 10
execfile("a.py")
print a
如果您运行
b.py
它将打印“15”。谢谢,但是如果您阅读了我的全部问题,b.py实际上不会包含打印语句,它将包含变量赋值(可能有很多变量)或其他声明。因此,从B.py中的函数返回值不是一个选项。事实上,我想要的是能够将我喜欢的任何代码放在B.py中(例如类、方法、导入等等),并且能够简单地将其放到A.py中。A.py会理解的(我会在A.py中处理)