小编hit*_*jim的帖子

Python如何从argparse填充字符串

我很好奇使用argparse后幕后发生的事情.我在这里这里检查,因为显然Namespace目前只存在于argparse库中.

我可能使用错误的关键字搜索SO/Google.我也可能会问一个毫无意义或明显的问题,但我们走了.

通过argparse捕获Python中的输入字符串时:

>python palindrome.py 'Taco cat!?'
Run Code Online (Sandbox Code Playgroud)

当运行下面的代码时,我希望通过指定parser.add_argument('string'... ...结果Namespace充当单个输入字符串的缓冲区.

我将字符串分配给"args"的下一行必须是我们第一次实际解析输入,从而产生与输入字符串长度成比例的工作负载.此时,"args"实际上包含一个Namespace对象,该对象无法通过for循环或其他方式解析(我知道).

最后,为了使用"for"或其他一些循环来解析输入,我使用Namespace对象来填充字符串.我很好奇这个过程多少次会产生与原始字符串长度成比例的计算时间?

这些步骤中的哪一个按地址复制或在幕后复制值?看起来乐观的更糟糕的情况是2倍.一旦创建Namespace对象,然后再次将其内容分配给"arg_str"

#! /usr/bin/env python
import sys
import argparse

parser = argparse.ArgumentParser(description='Enter string to see if it\'s a palindrome.')
parser.add_argument('string', help="string to be tested for palindromedness..ishness")
args = parser.parse_args()

arg_str = args.string

# I can parse by using 'for i in arg_str:' but if I try to parse 'for i in args:'
# I get TypeError: "Namespace' object is not iterable
Run Code Online (Sandbox Code Playgroud)

谢谢你的期待!!

python string parsing user-input argparse

7
推荐指数
1
解决办法
1336
查看次数

标签 统计

argparse ×1

parsing ×1

python ×1

string ×1

user-input ×1