如何使用一个Python脚本运行另一个Python脚本并向其传递变量? [复制]

2023-12-14

我有一个 Python 脚本。我们就这样称呼它吧控制器.py。我想用控制器.py运行另一个 Python 脚本并向其传递多个变量。我们来调用第二个脚本分析器.py.

在不导入的情况下执行此操作的最佳方法是什么分析器.py作为模块?以及如何引用我传递给的变量分析器.py在那个脚本中?

这是我使用子进程的失败尝试:

控制器.py

import subprocess

var1='mytxt'
var2=100
var3=True
var4=[['x','y','z'],['x','c','d']]
var5=r"C:\\Users\\me\\file.txt"

myargs=var1,var2,var3,var4,var5
my_lst_str = ' '.join(map(str, myargs))
my_lst_str ='python analyzer.py '+my_lst_str

subprocess.call(my_lst_str,shell=True)

分析器.py

print 'Argument List:', str(sys.argv)

我在 Stack Overflow 上浏览过类似的问题。我尝试过的一种经常推荐的解决方案是将analyzer.py作为模块导入,但是analyzer.py定义了许多不同的函数。将其用作模块会创建大量嵌套函数,并且管理这些嵌套函数内的变量范围非常麻烦。

我需要为这些脚本使用 Python 2。我使用的是 Windows 10 机器。


1- exec命令:

python2:

execfile('test.py')

python3:

exec(open('test.py').read())

2- os命令:

测试1.py:

import os 

#os.system('python test2.py')
os.system("python test2.py arg1 arg2")  

测试2.py:

import sys

print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)

3- subprocess命令:

from subprocess import call
call(["python", "test.py"])

用于传递参数和 shell 命令使用subprocess(请看这个Link):

import subprocess

# Simple command
subprocess.call(['ls', '-1'], shell=True)

另一个示例代码:

文件1.py:

args ='python file2.py id ' + 1
subprocess.call(args)

文件2.py:

import sys

print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)

4- socket pogramming:在两个或多个可以使用的 python 文件之间共享数据socket programming: 看这个Link.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用一个Python脚本运行另一个Python脚本并向其传递变量? [复制] 的相关文章

  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 验证 Rails 中的网站所有权

    有关类似主题的最新讨论 请检查this问题出来了 验证特定用户是否拥有网站所有权的最佳方法是什么 假设您有这个模型 class User lt ActiveRecord Base has many websites end 为了确保用户确实
  • 如何使用 YouTube API 获取特定直播视频的当前观看人数?

    如何使用YouTube API获取实时视频的当前观看人数 我可以使用视频源请求来查看当前观看者的数量 如下所示 它会返回随机视频 但我需要获取特定视频的当前观看者 所以当我使用视频请求时 像这样 当前没有Viewers字段 在线查看Coun
  • 获取 BigQuery 项目中所有 BigQuery 表的上次访问日期

    我知道如何获取表上次修改但未访问的日期 是否可以获得最后一次读取表的时间 是否有查询或 API 可以获取此信息 如果你有审计日志在 BigQuery 中 您可以编写如下查询 WITH tables AS SELECT FORMAT s s
  • JPA ManyToMany 对于用户和组?

    同样的问题在这里 但这对我没有帮助 我有三个表和多对多连接 在我的 JSF 应用程序中 我尝试添加用户 在我的组表中 有三个不同的组 管理员 客户和用户 我做了什么 将数据插入 jsf 表单后 用户单击 保存 名为 usersControl
  • 将淡入淡出效果应用于 UICollectionView 的顶部和底部

    我已经阅读了这里的示例 但我无法按照我想要的方式进行操作 不知何故 我的渐变示例卡在屏幕中间 无法按预期工作 我有一个UICollectionView它用垂直滚动填充整个屏幕 我想要顶部和底部UICollectionView为黑色 中间为透
  • fill() 之后设置矩阵中的值返回不正确的矩阵[重复]

    这个问题在这里已经有答案了 如果我像这样初始化矩阵 x O O O O O O O O O 然后设置x 0 1 X 它返回 O X O O O O O O O 正如预期的那样 但是 如果我按如下方式初始化矩阵 x new Array 3 f
  • 级联下拉菜单删除先前选定的内容

    我正在尝试在 html 中添加 7 个下拉框 它们都将填充相同的数据 我想做的是 当选择第一个下拉列表时 它将从下一个下拉列表中删除所选项目 因此 如果您在一个下拉列表中有数字 A B C D E F G H I 如果我在第一个下拉列表中选
  • 如何在symfony中检索带有ID的一条记录之后的所有记录?

    假设我有一个表 我在 symfony 中按字母顺序排序 每个项目都有一个相当随机的 ID 我想检索某个 ID 之后的所有项目 例如 Name ID Apple 5 Banana 9 Coconut 3 Date 1 Eggplant 8 假
  • Google Chrome 开发工具中的交叉样式属性是什么意思?

    使用 Chrome 的开发工具检查元素时 在元素选项卡中 右侧的 样式 栏会显示相应的 CSS 属性 有时 其中一些属性会被删除 这些属性意味着什么 当 CSS 属性显示为删除线时 意味着应用了划掉的样式 但随后被更具体的选择器 更本地化的
  • 运行并行进程并在其中一个失败时退出所有进程

    我有这段代码 首先make t1 make t2 and make t3在平行下 有没有一种方法可以在 make 进程失败时终止其余进程 例如 如果make t2失败 脚本应该终止其他 2 个正在运行的脚本 make t1 and make
  • 我可以在谷歌地图路线上放置多少个标记有限制吗?

    我可以在谷歌地图路线上放置多少个标记有限制吗 如果是 如何克服 我的开发人员说他不能在路线上添加超过 10 个标记 是的 我在网上找不到任何与此相关的内容 TIA 根据文档 for v3 允许的最大航路点为 8 个 加上出发地和目的地 Ma
  • 如何从node-mongodb本机驱动程序获取db实例?

    考虑一下 我在 main 中打开了 MongoDB 连接app js文件本身和以下代码落在它的回调中 mongodb connect MongoDBUrlGoesHere function err db app listen app get
  • CSS 当有 2 个类时不推荐使用单个类

    有一个 div 它有 2 个类名 like div class A B 我想要的是如果有 A B 它将被弃用 A AND B 样式 仅使用 A B style 是否可以 如果一个元素有类A 那么它有类A 并且您不能通过添加另一个类来 关闭它
  • Gem5 中与 ARM 裸机的 UART 通信

    我目前正在使用 Gem5 我必须通过 UART 从我的主机访问 ARMv8 裸机选项 所以我尝试了很多方法 但我还没有准备好 您能否让我知道 如何在裸机类型编程中将主机的串行端口映射到 ARMv8 的串行端口 任何帮助 将不胜感激 工作设置
  • 递归条件类型

    我想递归地映射一个对象 以便将对象中的原始值转换为其他类型 例如 我想要一个像这样的对象 const before a c b d 变成这样 const after a c Test b Test d Test 我还假设价值观不会Date
  • 服务器重新启动后重新启动 WCF 服务

    WCF 中是否有某种机制可用于 预启动 热身 托管在 IIS 中的 WCF 服务 类似于 SharePoint 网站的预热脚本 我遇到过这样的情况 服务器在夜间重新启动 第二天 WCF 服务启动时会出现很长的延迟 我无法更改使用这些服务的各
  • 如何在列表理解中设置局部变量?

    我有一个方法 它接受一个列表并返回一个对象 input a list returns an object def map to obj lst a list f lst return a list 0 if a list else None
  • 使用 C# 通过 SSH 隧道连接 MySQL

    我尝试使用 SSH 隧道通过 C 访问我的 MySQL 数据库 但出现异常 无法连接到任何指定的 MySQL 主机 我在这个的帮助下得到了这个代码 C 到 MySQL 服务器的 SSH 隧道 这是我的代码 PasswordConnectio
  • UIView拖动(图像和文本)

    当 UIView 有图像和文本时 是否可以在 iOS 屏幕上拖动 UIView 例如小卡片 您能给我指出类似 已解决 的主题吗 我还没有找到 根据 pepouze 的答案 这就是一个简洁的解决方案 测试过 有效 void touchesMo
  • 如何使用一个Python脚本运行另一个Python脚本并向其传递变量? [复制]

    这个问题在这里已经有答案了 我有一个 Python 脚本 我们就这样称呼它吧控制器 py 我想用控制器 py运行另一个 Python 脚本并向其传递多个变量 我们来调用第二个脚本分析器 py 在不导入的情况下执行此操作的最佳方法是什么分析器