【问题标题】:Mock command line arguments for Python script with `optparse`?使用`optparse`模拟Python脚本的命令行参数?
【发布时间】:2014-07-22 22:04:32
【问题描述】:

我想使用的 Python 脚本(称为 snakefood)通常从命令行运行并接受命令行参数,例如:

sfood /path/to/my/project

命令行参数的解析发生在使用optparse 的名为gendeps.py 的文件中。但是,我想使用另一个脚本中的蛇食模块。有没有一种方法可以模拟将命令行参数传递给snakefood 或重写gendeps.py 使其不再依赖optparse

【问题讨论】:

  • 你为什么不通过subprocess.call运行它?

标签: python command-line-arguments optparse


【解决方案1】:

您始终可以为sys.argv 分配一个新列表:

import sys

sys.argv = ['programname', '-iq', '-q', directory]
gendeps.gendeps()

optparse 在没有传入显式参数时使用sys.argv[1:] 作为输入。

【讨论】:

  • 这个答案很有帮助。只是一个小小的改进:import ossys.argv = [os.path.basename(__file__),, '-iq', '-q', directory]
猜你喜欢
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
  • 2021-10-21
  • 2018-05-02
相关资源
最近更新 更多