使用 argparse 将参数发送给 Python 脚本中的函数

2023-12-25

我处于一种奇怪的情况,我需要一个 Python 函数从脚本中运行,然后从我的主代码中调用该脚本。

我想用subprocess模块,并知道如何使用它将参数传递给纯脚本,但问题是,我需要将参数传递给其中的嵌套 Python 函数,其中大部分是可选的并且具有默认值。

我想arparse会以某种方式帮助我做到这一点。

这是我正在尝试的示例:

## Some Argparse, which will hopefully help
import argparse

parser = argparse.ArgumentParser()

## All arguments, with only "follow" being required
parser.add_argument('file_name', help='Name of resulting csv file')
parser.add_argument('sub_name', help='Sub-name of resulting csv file')
parser.add_argument('follow', help='Account(s) to follow', required=True)
parser.add_argument('locations', help='Locations')
parser.add_argument('languages', help='Languages')
parser.add_argument('time_limit', help='How long to keep stream open')

args = parser.parse_args()


## Actual Function
def twitter_stream_listener(file_name=None,
                            sub_name='stream_',
                            auth = api.auth,
                            filter_track=None,
                            follow=None,
                            locations=None,
                            languages=None,
                            time_limit=20):
   ... function code ...
   ... more function code ...
   ...
   ...
   ## End of script

如果您将参数传递给函数,您所需要做的就是在执行函数时将它们输入到函数中:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-o", "--output_file_name", help="Name of resulting csv file")
parser.add_argument("-s", "--sub_name", default="stream_", help="Sub-name of resulting csv file")
parser.add_argument("-f", "--follow", help="Account(s) to follow", required=True)
parser.add_argument("-loc", "--locations", default=None, help="Locations")
parser.add_argument("-lan", "--languages", default=None, help="Languages")
parser.add_argument("-t", "--time_limit", default=20, help="How long to keep stream open")

options = parser.parse_args()

# then just pass in the arguments when you run the function
twitter_stream_listener(file_name=options.output_file_name,
                        sub_name=options.sub_name, 
                        auth=api.auth,
                        filter_track=None,
                        follow=options.follow,
                        locations=options.locations,
                        languages=options.languages,
                        time_limit=options.time_limit)


# or, pass the arguments into the functions when defining your function
def twitter_stream_listener_with_args(file_name=options.output_file_name,
                                      sub_name=options.sub_name, 
                                      auth=api.auth,
                                      filter_track=None,
                                      follow=options.follow,
                                      locations=options.locations,
                                      languages=options.languages,
                                      time_limit=options.time_limit):
    # does something
    pass

# then run with default parameters
twitter_stream_listener_with_args()

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

使用 argparse 将参数发送给 Python 脚本中的函数 的相关文章

随机推荐

  • 从另一个线程更新 JavaFX UI

    我有一个 JavaFX 应用程序和一个工作线程 通过以下方式实现javafx concurrent Task 它执行一个漫长的过程 即压缩和上传一组文件 我已将任务进度连接到进度条progressProperty 除此之外 我希望将正在处理
  • C++ 解析函数类型模板参数

    我希望能够致电function具有函数类型 包括参数和返回类型 的模板参数 即double int long 并在函数中分离类型并单独使用它们 例如我希望能够调用一个函数 printRes
  • 使用 QIcon 不显示图像

    我正在尝试学习 PyQt 在阅读教程以了解基础知识时 我遇到了 QIcon 的问题 以下代码应该创建一个简单的窗口 其中包含名为 web png 的图像中的图标 import os import sys import PyQt5 dirna
  • Python:将表转换为字符串为键:值对并存储在字典中

    我从子进程命令获取数据作为字符串 我想将这些数据存储在字典中 我怎样才能最好地实现这一目标 这是数据示例 我已将其作为字符串从子进程返回 NAME MAJ MIN RM SIZE RO TYPE MOUNTPOINT loop0 7 0 0
  • Java Lambdas:它在 JVM 中如何工作以及它是 OOP 吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 例如 在匿名内部类的情况下 将传递 匿名 对象引用并执行该对象的方法 Lambda 是在需要时执行的代码块 当遇到 lambda 时
  • 在 Angular 应用程序上将 XML RSS feed 转换为 Json

    我有一个这样的APIhttps blog com rss 它返回下面的 xml 作为博客提要 Note 我见过这个 但这是针对nodejs应用程序的 https github com nasa8x rss to json https git
  • 当图服务调用返回时,是否不能保证用户已添加到租户中?

    我的应用程序有一个用户管理界面 可供对我们的 Azure 租户没有足够权限的用户进行委派管理 当新用户添加到应用程序时 我们会检查该用户是否已存在于租户中 如果不存在 我们会邀请他们 像这样的事情 var existingUser Try
  • 在 EF 6 中创建具有主键和标识列的实体

    我已经有一张桌子了varchar首要的关键 这与我当前的工作正常 edmx model 现在我在该表中添加了一个自动增量标识列 当我尝试更新时 edmx 该表未包含在 edmx 我不能有一个varcharPK列和自增标识列在同一个表中 Ye
  • 错误:未为类“PlatformButton”定义方法“FlatButton”

    我收到这些错误 但不知道如何修复它们 AppData Local Pub Cache hosted pub dartlang org flutter platform widgets 1 20 0 lib src platform butt
  • 用于解密文件并将文件从一个目录移动到另一个目录的 Shell 脚本

    我有一个目录 里面有几个文件 我正在尝试解密这些文件并将它们移动到另一个目录 我不知道如何设置输出文件名并移动它 因此 目录结构如下所示 Applications MAMP bin decryptandmove sh Application
  • Apple 开发者注册错误:您目前无法完成 Apple 开发者计划的注册 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我注册 Apple Developer Program 时出现以下消息 您的注册无法完成 您目前无法完成 Apple 开发者计划的注册
  • 运行外部命令并获取其消耗的 CPU 量

    很简单 我想从 Python 脚本中运行外部命令 程序 一旦完成 我还想知道它消耗了多少 CPU 时间 Hard模式 并行运行多个命令不会导致CPU消耗结果不准确 On UNIX a 使用resource http docs python
  • 通过 HTTPS 的 Mojolicious

    我正在将 Mojolicious 用于需要加密连接的 Web 应用程序 但我不知道如何向 Mojolicious 添加 SSL 支持 我的同事向我发送了这些 文件domain key domain bundle crt domain crt
  • 部分语音识别

    我目前在使用 Microsoft 语音引擎进行语音识别方面玩得很开心 它的设置和使用 C 非常简单 并且可以用比我最初想象的更少的代码行来实现伟大的事情 现在 重点是我真的不知道如何处理这个问题 我知道引擎需要开始监听 然后你说一个单词或一
  • 资产路径中缺少指纹

    我们刚刚使用新的资产管道部署了 Rails 3 1 应用程序 在开发中一切看起来都很好 但在生产中所有资产图像都丢失了 部署时 我们遵循 Ruby on Rails Edge Guide 作为示例 我们的应用程序中的一个简单代码片段 ass
  • 当用户单击链接时,想要使用 jquery 在链接下方显示 div

    我有链接和一个div 我想当用户单击链接时在链接下方显示 div 我想通过代码将 div 定位在链接下方 这意味着 div 的顶部和左侧将根据链接的顶部和左侧位置通过代码设置 需要帮忙 a About a div a href About
  • 如何在 C# 中释放桌面应用程序的 VM/私有字节

    我有用 C 开发的桌面应用程序 应用程序使用的虚拟机大小非常高 我想向 pdf 文件添加水印 该文件有超过 10 000 页 确切地说是 10776 页 VM 大小增加 有时应用程序冻结或抛出内存不足异常 是否有解决方案可以在 C 中以编程
  • 如何在android中单击按钮时对EditText应用撤消和重做操作

    我正在尝试在向 EditText 写入或应用效果时应用撤消和重做操作 为此 我已经从这里下载了课程Link https code google com p android issues detail id 6458 c123然后我在我的应用
  • SAS:使用 PROC IMPORT 导入 .xlsx 时定义类型

    问题 使用 PROC IMPORT 时如何定义从 xlsx 文件导入的变量的变量类型 My work 我正在使用 SAS v9 4 据我所知 它是普通的 SAS 我没有 SAS ACCESS 等 我的数据如下所示 ID1 ID2 MONTH
  • 使用 argparse 将参数发送给 Python 脚本中的函数

    我处于一种奇怪的情况 我需要一个 Python 函数从脚本中运行 然后从我的主代码中调用该脚本 我想用subprocess模块 并知道如何使用它将参数传递给纯脚本 但问题是 我需要将参数传递给其中的嵌套 Python 函数 其中大部分是可选