抱歉,如果之前有人问过这个问题,我确实搜索过它,但所有点击似乎都是关于 python 原始字符串,而不是关于 argparse。
无论如何,我有一个代码,用户输入一个字符串,然后处理这个字符串。但是,我有一个问题,因为我希望我的代码能够区分\n
,\\n
以便用户可以控制他们是否获得换行符或\n
出现在输出中(分别)。
这本身很简单,我可以让逻辑工作来检查字符串等。但是,argparse 似乎并没有保持输入字符串的原始状态。因此,如果我要写:Here is a list:\nItem 1
它会被解析为Here is a list:\\nItem 1
. \n
如果我在输入字符串中替换为完全相同的内容,则解析完全相同的内容\\n
,因此无法区分两者。
我可以包含一个 bodge(例如,我可以让用户输入 say $\n
for\n
以显示在输出中,或者只是\n
换行)。但这很混乱并且使代码的使用复杂化。
有没有办法确保 argparse 解析的字符串是原始的?(即,如果我输入\n
它解析\n
而不是\\n
)
再一次,很抱歉,如果以前有人问过这个问题,但我找不到答案,经过一个多小时的尝试寻找答案,我没有想法(禁止)。提前为任何和所有帮助干杯。
示例代码(对不起,如果这不起作用,不确定如何最好地为 argparse 做示例代码!):
import argparse
parser = argparse.ArgumentParser( description = 'Test.' )
parser.add_argument( 'text', action = 'store', type = str, help = 'The text to parse.' )
args = parser.parse_args( )
print( repr( args.text ) )