从另一个Python脚本中将参数传递给main(argv)

2 投票
1 回答
35 浏览
提问于 2025-04-14 18:01

我有一个Python脚本,它在主函数中接收参数“-i on”。这段代码的一部分是:

def main(argv):

   status = "none"

   try:
      opts, args = getopt.getopt(argv,"hi:")
   except getopt.GetoptError:
      print sys.argv[0], ' -i on|off'
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print sys.argv[0]," -i on|off"
         print "Switches invertor on and off"
         sys.exit()
      elif opt in ("-i"):
         status = arg
   
   up = UPower()
   if (up.connect() < 0):
    print "Could not connect to the device"
    exit -2
 
   
   newstatR = 0
   if (status == "on"): newstatR = 1

我还有另一个脚本,我想像这样调用这个脚本:

import sys
from flask import Flask, request
sys.path.insert(0, '/home/domoticame/epever-inverter-read')
import ivctl
...
ivctl.main('-i on')

但是,这样做并不总是有效,执行的结果和在命令行上运行时不一样。看起来它执行的是关闭命令,而不是打开命令。

但是,这样做并不总是有效,执行的结果和在命令行上运行时不一样。看起来它执行的是关闭命令,而不是打开命令。

1 个回答

3

你有没有试过把它们当作一个列表来传递呢?

import sys
from flask import Flask, request
sys.path.insert(0, '/home/domoticame/epever-inverter-read')
import ivctl
...
ivctl.main('-i on'.split())

撰写回答