【问题标题】:Running python program with arguments from another program使用来自另一个程序的参数运行 python 程序
【发布时间】:2023-03-28 23:05:02
【问题描述】:

我想从当前程序调用一个python程序,

def multiply(a):
    return a*5
mul = sys.argv[1]

我将此文件保存为test.py.so 从我正在调用的当前文件中保存,但我想像多处理队列一样并行运行代码,但它不起作用。 到目前为止我尝试过的,

import os
import sys
import numpy as np
cwd = os.getcwd()
l =  [20,5,12,24]
for i in np.arange(len(l)):
    os.system('python test.py multiply[i]')

我想像多处理一样并行运行所有列表项的主脚本。如何实现?

【问题讨论】:

  • 请重复Python tutorial,它向您展示了如何重用存储在文件中的Python代码。
  • 不...我想以某种方式实现...所有内容都可以立即执行...就像使用子流程一样...您能以这种方式帮助我吗...跨度>
  • 我想为所有列表项并行运行它们..它会解释很多..

标签: python list loops subprocess parameter-passing


【解决方案1】:

如果你想让你的程序像使用 os.system 那样工作,你需要稍微改变一下 test.py 文件:

import sys

def multiply(a):
    return a*5

n = int(sys.argv[1])
print(multiply(n))

这样编写的代码采用 argv 的第二个元素(第一个只是文件名),当您使用 os.system 执行它并将其转换为整数,然后执行您的函数(乘以5)。

不过,在这些情况下,最好将此文件作为模块导入到您的项目中。

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 2023-03-30
    • 2013-01-27
    • 1970-01-01
    • 2012-07-06
    • 2021-04-08
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    相关资源
    最近更新 更多