アスキーテキストを分割したい
1 'K\^o, Suk\'e'
これは Python 文字列として出力されます
line = "1 'K\\^o, Suk\\'e'\n"
の中へ
['1', 'K\\^o, Suk\\'e']
shlex.split(line)
を与えて、動作しませんValueError("No closing quotation")
。
私は次のように追加しようとしましたwordchars
:
>>> lexer = shlex.shlex(line)
>>> lexer.wordchars += "\\'"
>>> list(lexer)
['1', "'K\\", '^', 'o', ',', "Suk\\'e'"]
しかし、これは私の意図ではありません。
引用符がなければ、すべてが期待どおりに機能します。
>>> line2= "1 'K\\^o, Suk\\e'\n"
>>> shlex.split(line2)
['1', 'K\\^o, Suk\\e']
これはどのように修正できますか?
編集:私が来た最も近いものは:
>>> lexer = shlex.shlex(line)
>>> lexer.wordchars += "\\'"
>>> lexer.wordchars += " "
>>> lexer.wordchars += "\\^"
>>> lexer.wordchars += ","
>>> list(lexer)
['1', "'K\\^o,", "Suk\\'e'"]
これはまだ正しくありません。
編集: 文字列の例はやや誤解を招く可能性があります。分割することもできるはずです。
>>> l1 = "C12 H2 'Hello friend'"
shlex
問題l1
ありません。