从另一个脚本调用脚本的最佳方式是什么?

新手上路,请多包涵

我有一个名为 test1.py 的脚本,它不在模块中。它只有在脚本本身运行时应该执行的代码。没有函数、类、方法等。我有另一个作为服务运行的脚本。我想从作为服务运行的脚本中调用 test1.py

例如:

文件 test1.py

 print "I am a test"
print "see! I do nothing productive."

文件 service.py

 # Lots of stuff here
test1.py # do whatever is in test1.py

我知道一种打开文件、读取内容并对其进行基本评估的方法。我假设有更好的方法来做到这一点。或者至少我希望如此。

原文由 Josh Smeaton 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 144
2 个回答

执行此操作的通常方法如下所示。

测试1.py

 def some_func():
    print 'in test 1, unproductive'

if __name__ == '__main__':
    # test1.py executed as script
    # do something
    some_func()

服务.py

 import test1

def service_func():
    print 'service func'

if __name__ == '__main__':
    # service.py executed as script
    # do something
    service_func()
    test1.some_func()

原文由 ars 发布,翻译遵循 CC BY-SA 2.5 许可协议

这在 Python 2 中是可能的,使用

execfile("test2.py")

如果对您的情况很重要,请参阅有关命名空间处理的 文档

在 Python 3 中,这可以使用(感谢@fantastory)

 exec(open("test2.py").read())

但是,您应该考虑使用不同的方法;你的想法(据我所知)看起来不太干净。

原文由 balpha 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题