귀하의 윈도우 편집기 전각 대시와 일반 대시와 '공상'스타일이 인용과 따옴표 대체 :
>>> '\xe2\x80\x94-test'.decode('utf8')
u'\u2014-test'
>>> print '\xe2\x80\x94-test'.decode('utf8')
—-test
>>> '\xe2\x80\x9cTest\xe2\x80\x9d'.decode('utf8')
u'\u201cTest\u201d'
>>> print '\xe2\x80\x9cTest\xe2\x80\x9d'.decode('utf8')
“Test”
>>> import unicodedata
>>> for u in u'\u2014\u201c\u201d':
... print u, unicodedata.name(u)
...
— EM DASH
“ LEFT DOUBLE QUOTATION MARK
” RIGHT DOUBLE QUOTATION MARK
텍스트 지향 편집기 다음 번 사용을; 워드 프로세서는 텍스트를 '더 예쁘'버전으로 대체해야 할 의무가 있습니다.
당신은 unicode.translate()
호출 할 수있는 : 그것은 작동 할 일반 인용 부호가 없기 때문에 쉘이 공백 올바르게 구문 분석하지 않습니다
>>> import sys
>>> sys.argv = ['test.py', '\xe2\x80\x94-test', '\xe2\x80\x9cTest\xe2\x80\x9d']
>>> map = {0x2014: u'-', 0x201c: u"'", 0x201d: u"'"}
>>> sys.argv[1:] = [s.decode('utf8').translate(map).encode('utf8') for s in sys.argv[1:]]
>>> sys.argv
['test.py', '--test', "'Test'"]
참고; 위의 방법 먼저을 사용하여 텍스트 파일을 번역 한 다음 제대로 인용 된 문자열을 셸에 붙여 넣기를 원할 수 있습니다.
정말 텍스트 파일 이었습니까, 아니면 Word 문서와 같았습니까? – user2357112
Windows에서는 Notepad ++에, OS X에서는 TextWrangler에 있었을 수도 있습니다. 그러나 임시 새 파일에 복사되었거나 저장되지 않은 새 파일로 적절한 형식 설정이 없습니다. – jensph