['1', 'K\\^o, Suk\\'e']
shlex.split(line)
로 파이썬 문자열
line = "1 'K\\^o, Suk\\'e'\n"
로 인쇄
1 'K\^o, Suk\'e'
하지 않는 아스키 텍스트를 분할 할 일하고, ValueError("No closing quotation")
를주고.
>>> lexer = shlex.shlex(line)
>>> lexer.wordchars += "\\'"
>>> list(lexer)
['1', "'K\\", '^', 'o', ',', "Suk\\'e'"]
을하지만 다시는 내 의도되지 않습니다 :
나는 다음과 같이 wordchars
에 추가했습니다.
>>> 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
문제 없음을 말한다.
에 POSIX 모드와
escapedquotes
를 사용할 수 있습니까? –@VasiliSyrakis : 두 번째 것은 작은 따옴표 안에 있기 때문에. – jwodder
@Aquiles : 내 ascii 파일의 텍스트는'1 'K \^o, Suk \'e ''입니다. 'f.readlines()'를 사용하여이 파일을 불러 오면''1 'K \\^o, Suk \\'e '\ n "'로 출력됩니다. 바라기를 이것은 내 뜻을 분명히합니다. – user14717