如何多次运行多个脚本

时间:2019-05-10 20:28:15

标签: python

我有两个返回值的脚本。一个Scipt的值由第二个大脚本使用。我试图从一个单独的main()脚本中多次运行两次,同时每次#time每次运行时都更改一个变量。我可以运行它们一次而没有问题,但是我无法重复#那个过程,我在做什么错了?

脚本1.py:

list1 = [1,2,3,4,5,6,7,8]
var1 =5
var2 =10
var3= 20
var4= 30
var5= 40

脚本2.py:

import Script1
question=input('What variable do you want to use ??')
def mult(question):
    [i*eval(question) for i in list1]

mult()

现在,我想自动运行n次。 我尝试过:

Script3.py(主程序):

import Script2
for i in range(0,10):
    import Script2

,但它只能运行一次并停止。 帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

根据您的评论

  

我手工输入的值...然后将它们导入第二个   脚本根据我要分析的内容修改它们,然后等待   输出。 ...我的意思是我可以将1和2融合在一起,我希望   指向一些Os.module和子过程并学到一些东西。   可以做OOP).. new。 ...像os.execute(Script2)n次.....我猜   那不存在?

我会推荐以下结构,然后在Script3.py中更改/添加方法以完成任务。

Script1.py

from Script2 import  Script2

Script2 = Script2()

Script2.getInput()

Script2.py

from Script1 import Script1

class Script2:

    data = Script1()

    list1 = data.returnList()

    def getInput(self):

        for i in self.list1:
            question = input("What variable would you like to change? ")
            variable = input("Enter the variable: ")

            self.data.setVariable(question, variable)

Script3.py

class Script1:

    def __init__(self):
        self.list1 = [1, 2, 3, 4, 5, 6, 7, 8]
        self.var1 = 5
        self.var2 = 10
        self.var3 = 20
        self.var4 = 30
        self.var5 = 40

    def returnList(self):
        return self.list1

    def setVariable(self, var, value):
        # use this method to set the variables

答案 1 :(得分:-1)

对于这种情况,我建议将要运行n的行放置在一个函数中,然后从刚导入的模块中调用该函数。

例如,在脚本2中,与fake.db %>% group_by(Student) %>% arrange(Week) %>% mutate(Obs = cumsum(Week != lag(Week, default=first(Week))) + 1) 函数一起,还具有执行您要执行的操作的函数:

mult()

定义后,您可以将Script2导入您的第三个脚本并按如下所示调用特定函数:

import Script1

def function_name():
    question=input('What variable do you want to use ??')
    mult(question)

def mult(question):
    [i*eval(question) for i in list1]