导入带有参数的 python 脚本

2023-11-21

我有脚本:

移动1.py:

def move():
    print("walk!")

移动2.py:

def move():
    print("run!")

And man.py,可以接受通过参数参数 moving1 或 moving2 脚本来执行操作。

man.py:

import sys

if len(sys.argv) <= 1:
    exit("Too less arguments calling script")

__import__(sys.argv[1])
moving = sys.modules[sys.argv[1]]

def move():
    moving.move()

现在我有 testman.py 脚本,它必须测试 man.py 执行的所有变体:

测试人.py

import man #and somehow add here as argument "moving1"
man.move()

import man #and somehow add here as argument "moving2"
man.move()

存在很多类似的问题,但它们并不完全符合我的要求。如何向导入的脚本添加参数?问题不在于检查

if __name__ = "__main__":

在那里,问题是使用我想要的参数完全导入脚本。是否可以?


您应该将参数处理代码和导入代码分开:

man.py

import sys

def move():
    moving.move()

def setup(module):
    global moving
    moving = __import__(module)

if __name__ == "__main__":
    if len(sys.argv) <= 1:
        exit("Too less arguments calling script")

    setup(sys.argv[1])

测试人.py

import man
man.setup(<name>)
man.move()

然而,这似乎是实现您正在尝试做的事情的一种非常奇怪的方式。也许你可以澄清你的目标?

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

导入带有参数的 python 脚本 的相关文章

  • 使用 pip 或 conda 来管理包? [复制]

    这个问题在这里已经有答案了 我已经使用 matlab 进行机器学习很长一段时间了 最 近切换到 python 并使用其包管理器 pip 安装某些包并成功安装了许多包 几天前 我开始使用 conda 我以前安装的所有软件包都被覆盖 我真的很想
  • 用户警告:MovieWriter ffmpeg 不可用

    尝试在 google colab 上制作动画 收到此警告 用户警告 MovieWriter ffmpeg 不可用 warnings warn MovieWriter s 不可用 writer did pip 安装 ffmpeg 标准化但没有
  • 如何在基于其他数据帧的数据帧中创建联接?

    我有 2 个数据框 一份包含学生批次详细信息 另一份包含分数 我想加入 2 个数据框 数据框1包含 s1 s2 s3 Stud1 Stud2 Stud3 Stud2 Stud4 Stud1 Stud1 Stud3 Stud4 数据框2包含
  • 有没有纯Python的表类?

    我正在构建一个需要分析表格数据的应用程序 我想执行一些列操作 例如重命名列 删除列以及根据现有列的值计算新列的能力 我的第一选择是 Pandas 之类的东西 但是一个限制是这个项目必须是跨平台的并且非常容易在 virtualenv 中部署
  • Python 中的密码子生成

    我有这段代码 用于将 DNA 字符串转换为密码子列表 然后将此列表转换为具有各自氨基酸的字符串 然而 当我运行代码并且 DNA 字符串以一对核苷酸 例如 CT 而不是三联体结尾时 代码不会生成氨基酸序列 正如您在输出中看到的 from co
  • Redis 队列工作程序在 utcparse 中崩溃

    我正在尝试按照以下教程获得基本的 rq 工作 https blog miguelgrinberg com post the flask mega tutorial part xxii background jobs https blog m
  • Flask-admin 内联建模传递表单参数会抛出 AttributeError

    Flask 开发者们大家好 在 Flask admin 中 我目前尝试在模型视图中实现内联模型编辑 在模型方面 我有一个简单的树结构 表示一组内容页面 每个节点都有多个子节点以及与其关联的多个内容数据模型 模型被命名为ContentNode
  • 使用 Numpy 与 einsum 和 tensordot 进行相同的操作

    假设我有两个 3D 数组A and B形状的 3 4 N and 4 3 N 我可以计算沿第三轴的切片之间的点积 with einsum np eisum ikl kjl gt ijl A B 是否可以执行相同的操作numpy tensor
  • 使用 isdigit 表示浮点数?

    a raw input How much is 1 share in that company while not a isdigit print You need to write a number n a raw input How m
  • 创建 Pyomo 约束的性能

    我正在用 pyomo 设置一个更大的能量优化问题 正如其他中提到的 设置花费了不合理的时间问题 https stackoverflow com questions 43413067 performance of pyomo to gener
  • pyqt4窗口调整大小事件

    我正在使用 python3 和 pyqt4 我希望每次运行时都会运行一些代码QMainWindow已调整大小 我想要这样的东西 self window resized connect self resize but resized不是内置函
  • 如何使用httplib2进行相互证书认证

    我正在使用 httplib2 从我的服务器向另一个 Web 服务发出请求 我们想要使用相互证书身份验证 我了解如何使用证书进行传出连接 h set certificate 但是如何检查应答服务器使用的证书 这张票 http code goo
  • ValueError:设置 random_state 无效,因为 shuffle 为 False。您应该将 random_state 保留为默认值(无),或设置 shuffle=True

    当我尝试在 pycaret 中训练某些内容时 我收到此错误消息 ValueError Setting a random state has no effect since shuffle is False You should leave
  • python中的unicode错误[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在下面的代码中我收到错误mailSe
  • 如何让 IPython 按类别组织制表符补全的可能性?

    当一个对象有数百个方法时 制表符补全很难使用 通常 有趣的方法是由被检查对象的类而不是其基类定义或重写的方法 如何让 IPython 对其制表符完成可能性进行分组 以便首先检查对象的类中定义的方法和属性 然后是基类中的方法和属性 看起来像是
  • 将 pi 打印到小数点后几位

    w3resources 面临的挑战之一是将 pi 打印到小数点后 n 位 这是我的代码 from math import pi fraser str pi length of pi number of places raw input En
  • python webdriver_manager chrome 自定义配置文件

    如何使 webdriver manager chrome 使用自定义 chrome 用户配置文件 我知道对于 selenium webdriver 我可以这样指定 options Options options add argument f
  • Python 单元测试:Nose 失败时重试?

    我有一个随机失败的测试 我想让它在发送错误消息之前重试多次 我将 python 与 Nose 一起使用 我写了以下内容 但不幸的是 即使使用 try except 处理 当第一次尝试测试失败时 Nose 也会返回错误 def test so
  • python 根据日期创建目录结构

    我使用以下函数根据今天的日期创建目录 usr bin python import time datetime os today datetime date today todaystr today isoformat os mkdir to
  • Django 多个外键,相同的相关名称

    我想创建一个模型 1 其中具有相同其他模型 2 的多个外键 我希望这些外键具有相同的related name因为每个外键将指向 model 2 的不同实例 因为我需要所有外键的一个反向关系 也许一个例子会更明确 class Parent M

随机推荐

  • 在 codeigniter 中调试路由?

    我想知道是否有任何简单的方法可以在 codeigniter 中调试路由 最好我希望能够在日志中看到以下内容 Client sent apps something Route found apps any gt applications se
  • SQL Server:拆分操作

    如何在 SQL Server 中拆分字符串 例子 输入字符串 stack over flow Result stack over flow 如果您不能使用表值参数 请参阅 SQL Server 2008 中使用表值参数的数组和列表 作者 E
  • 是否可以在 Visual Studio 中为动态对象提供智能感知?

    我在项目中使用动态对象 并且我想为该对象提供智能感知 我知道 Visual Studio 无法知道智能感知要显示什么 但如果我可以插入智能感知 我确实知道应该显示哪些条目 有没有办法扩展 Visual Studio 的智能感知 如果是这样
  • Android 测试分片

    谁能解释一下 android 中的测试分片意味着什么 如果有人可以分享任何教程将会非常有帮助 碎片这个词的意思是整体的一小部分 仅凭一个数字如何进行分片 我应该在什么基础上指定 shardIndex 定义如开发人员文档中所示 测试分片 测试
  • 如何在 Eclipse 中编辑 Maven 依赖项中的“.class”文件

    好的 我有我的 Java 项目 在项目资源管理器的 Maven 依赖项项目文件夹下 我遇到了jar文件夹 里面有一个 class文件 现在 我点击了Download Sources我可以查看 class文件作为 Java 文件 但我无法在
  • COM 如何选择如何编组接口?

    据我了解 在 COM 中实现编组的方法有以下三种 类型库编组 代理 存根编组 通过对象实现 IMarshal 现在该组件如何consumer 用户 选择使用哪一个 它是自行决定并使用首选方式 还是调用某些内置函数并为其解决问题 我目前遇到以
  • 从必需的文件扩展 Node.js 中的 Array.prototype

    我将以下内容保存在 test js 中 它成功地在浏览器中扩展了Array 但它似乎不适用于node和require 有人可以解释这里出了什么问题吗 function Array prototype max function return
  • Angularjs 中的记住我功能和令牌

    我正在寻找更好的方法来解决我的问题 我的登录表单上有记住我的功能 当用户单击记住我框时 我的 API 会向我发送令牌 我的问题是存储此令牌并在用户返回我的网站时再次对用户进行身份验证的最佳方法是什么 我以为 创建一个 Cookie 并在其中
  • R 中给定函数的包名称[重复]

    这个问题在这里已经有答案了 可能的重复 如何确定函数的名称空间 我不知道该怎么做 你如何知道 R 中某个函数的包名称 我想要一个函数 给出函数的名称 返回拥有它的包的名称 有什么建议吗 可能有更好的解决方案 但是find functionn
  • 获取列中仅出现一次的值的数量

    首先 如果相关的话 我正在使用 MySQL 尽管我认为解决方案可以跨数据库产品工作 我的问题是 我有一个带有单列的简单表格 该列没有任何约束 此列中有一些简单的数据 例如 a a b c d d 我需要获取只出现一次的值的数量 计数 从上面
  • malloc分配的内存的保护标志是什么?

    根据这个线程 分配的内存malloc至少有PROT READ PROT EXEC 否则所包含的函数无法执行 man malloc没有提到任何有关保护的内容 因此提出了这个问题 malloc 通常会返回具有读写权限的内存 某些体系结构 例如
  • h.264 视频无法在 iOS 上播放

    我有一个用 h 264 编码的视频文件无法在 iOS 上播放 我想知道原因 这是 HTML
  • Android 应用程序中的 C# .dll 库

    我目前正在使用 Monodroid 开发 Android 应用程序 我对电话应用程序相当陌生 因此对以下几件事感到困惑 Android 库的定义是什么 我使用 Mono 模板创建 Android 库 创建 Mono for Android
  • 什么时候需要延迟加载?

    我懒惰地加载我的所有成员 我这样做已经有一段时间了 并且只是认为延迟加载从表面上看是一件好事 假设我们有 public class SomeClass public int anInt public SomeReferenceType me
  • 如何包含 CEFSharp 所需的 VC++ 可再发行文件

    使用 CEFSharp 浏览器构建应用程序在我的计算机上运行良好 但在服务器上崩溃并出现以下错误 System IO FileLoadException 无法加载 CefSharp Core dll 导入的过程 我在互联网上看到过这个问题
  • XHTML 中是否有类似于“colgroup”的名为“rowgroup”的属性?

    下列w3c文件提及rowgroup http www w3 org TR html401 struct tables html h 11 2 6 http www w3 org TR html401 struct tables html r
  • 如何在 VB6 中设置完整的内部版本号(Major.Minor.Build.Revision)

    How to set the complete version number from vb6 VPIaccessMaker vbg from Visual Basic i can set Major Minor Revision as 3
  • 像 Craigslist 一样的电子邮件转发 - Rails

    我正在尝试做 craigslist 的匿名电子邮件所做的事情 但使用 Rails 而且价格也便宜 对我来说 能够向电子邮件添加标头非常重要 这就是基本电子邮件转发不起作用的原因 我想到的一种方法是使用 SMTP 服务器 每当我通过 POP
  • 如何使用SQLAlchemy在SQLite上创建全文搜索索引并进行查询?

    我正在创建一个可以执行基本操作的简单应用程序 SQLite用作数据库 我想执行通配符搜索 但我知道它的性能很差 我想尝试全文搜索 但我无法完整提供示例 怎么做 我确认 SQLite 有全文搜索支持 这是我的示例代码 from flask s
  • 导入带有参数的 python 脚本

    我有脚本 移动1 py def move print walk 移动2 py def move print run And man py 可以接受通过参数参数 moving1 或 moving2 脚本来执行操作 man py import