python - 如何在 python 文件中使用“argparse”参数?
问题描述
假设我有一个 main.py 和一个 subfile.py。
- 主文件
import subfile #Writen by myself. I want to share argparse with it
import argparse
parser = argparse.ArgumentParser(description='test',formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--a', type=int, default=0, help='test')
args = parser.parse_args()
args.a=0
subfile.fun()
args.a=1
subfile.fun()
args.a=0
subfile.fun()
2.子文件.py
xxxxxsome operation here to use args in main.pyxxxx
# In tensorflow wrapped argparse, I just need to define the same ArgumentParser to use args defined in main.py.
# But it's not suitable for "argparse", which would cause conflicts.
def fun():
if args.a==0:
print('yes')
else:
print('no')
在 main.py 中,我使用 argparse 传递参数,而 main.py 使用 subfile.py。
现在,我想在 main.py 中使用 args 定义,我该怎么做?
(代码是描述问题的简化示例,无法通过重组代码解决,必须通过使用 subfile.py 中的 args 来解决。)
谢谢你的帮助!我整天都被一些虫子折磨,你的回答会帮助我。赞赏!
编辑:实际上我知道如何将参数传递给函数。但正如我上面所说,我编写的示例代码只是为了解决关键问题:如何在 python 文件中使用库“argparse”,该库在 tensorflow“FLAG”中的类似库中得到支持。
解决方案
您可以添加另一个文件,我们称之为它arguments.py
。
然后包括在两者的顶部main.py
和subfile.py
以下行:
from arguments import args
然后,您将所有与解析命令行参数相关的代码移至arguments.py
.
这样,两个模块main.py
都subfile.py
可以访问同一个args
对象。
推荐阅读
- svg - 如何使用 viewBox 在 Inkscape 中保存 SVG?
- php - 处理后重定向回调 URL
- ios - 如何在我的 UICollectionView 单元格中删除具有透明背景的底部边框线?
- c# - 更改数据中继器中按钮的行为
- javascript - 有线承诺嵌套 .then 处理程序顺序
- python - Doc2Vec 段落向量分布式内存模型 (PV-DM) 未分类
- android - 使用未到达服务器的多部分表单数据改进 POST 请求
- python - Crontab 以特定时间间隔获取脚本列表
- triggers - Sybase 触发器更改 sp_depends 输出
- java - 括号反斜杠防止正则表达式模式匹配