我的服务器上有2个Python脚本。我想从SendMail.py运行第二个MainScript.py,我需要将2个参数传递给它。

我想在send_mail中调用MainScript.py函数:

def send_mail(subject, body):
    # call SendMail.py with and pass the subject & body arguments


因此它将运行SendMail.py

传递参数时如何运行其他脚本?是否可以不将主功能从SendMail.py导入到MainScript.py?如何获取SendMail.py中的参数?

最佳答案

您可以使用subprocess模块运行另一个python解释器; sys.executable为您提供了方便的起点:

import subprocess
import sys

subprocess.call([sys.executable, 'SendMail.py', subject, body])


但最佳做法是仅导入SendMail;确保将其结构化为仅使用if __name__ == '__main__'防护程序运行“类似脚本”的代码,然后从SendMail导入主要的“发送”功能,然后重复使用该功能:

def send_mail(subject, body):
    # main sending function


if __name__ == '__main__':
    # parse command line arguments into subject and body
    send_mail(subject, body)


然后导入SendMail并调用SendMail.send_mail(subject, body)

关于python - 如何将参数从服务器上的一个python脚本传递给另一个?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17165097/

10-12 19:41