防止shlex与冒号(:)分裂

时间:2020-05-11 17:43:24

标签: python-3.x parsing shlex

我在处理shlex中的冒号(:)时遇到麻烦。我需要以下行为:

示例输入

text = 'hello:world ("my name is Max")'
s = shlex.shlex(instream=text, punctuation_chars=True)
s.get_token()
s.get_token()
...

所需的输出

hello:world
(
"my name is Max"
)

当前输出

hello
:
world
(
"my name is Max"
)

Shlex将冒号放在一个单独的标记中,我不希望这样。该文档没有对冒号说太多。我试图将其添加到wordchar属性中,但它使所有内容混乱并且将逗号之间的单词分开。我也尝试将punctuation_char属性设置为仅带有括号的自定义数组:[“(”,“)”],但没有区别。我需要设置punctuation_char选项才能将括号作为单独的标记(或实现此输出的任何其他选项)获得。

任何人都知道我该如何工作?任何帮助将不胜感激。 我使用的是python 3.6.9,如有必要,可以升级到python 3.7.X。

1 个答案:

答案 0 :(得分:0)

要将input ('Press enter to continue.') 视为from sys import argv #python.exe app.py JSON json = argv print("Your JSON filepath is: " + json) 作为char单词,您需要在>python app.py JSON上添加>python.exe app.py JSON

python(.exe) app.py "JSON"

我使用Python 3.6.9和3.8.0进行了测试。我认为您需要Python 3.6才能拥有shlex初始化参数。