2017-10-03 2 views
0

그래서 접근 방식을 사용하여 this post 문자열에서 큰 따옴표 붙은 문자열을 추출합니다. 입력 문자열이 터미널 인수에서 오는 경우 제대로 작동합니다. 그러나 입력 문자열이 다음과 같은 txt 파일에서 나온다면 형식이 아닌 오류가 발생합니다. 나는 두 개의 문자열 (하나는 파일과 하나는 터미널)에서 동일한 txt 내용을 가진 해시 코드를 얻으려고 시도했지만 다른 것으로 밝혀졌습니다. 누구든지이 문제를 해결할 방법을 알고 있다면 궁금합니다. (파이썬 3.x에서)동일한 문자열은 파이썬에서 다른 결과를 제공합니다

그건 그렇고, 내 코드에서 "utf-8"로 기본 인코딩을 설정했습니다.

python filename.py < input.txt 
+1

코드는 어디에 있습니까? –

+0

코드를 입력하십시오. – dalonlobo

답변

0

명령 파이썬을 사용하는 경우 명령은이를 Python 2.x에서 인식합니다. 당신은 파이썬 3.x를 원하는 경우 파이썬 스크립트로 txt 파일을 섭취 할 경우

, 그냥이

python3 filename.py < input.txt 
0

두 가지처럼 python3 에 명령을 변경, 당신은 그것을 지정해야합니다. 이 두 줄을 추가하십시오.

import sys 
text = str(sys.argv[1]) 

이 평균 텍스트는 'input.txt'입니다. 스크립트는 함수가있는 경우

둘째, 그것은 당신이 기능을 수행 할 작업을 모르는 것, 당신이 중 하나에있는 주요 항목을 통해 기능을 실행하기 위해 스크립트 명시 적으로 말할

import re 
import sys 
def doit(text):  
    matches=re.findall(r'\"(.+?)\"',text) 
    # matches is now ['String 1', 'String 2', 'String3'] 
    return ",".join(matches) 

if __name__ == '__main__': 
    text_file = str(sys.argv[1]) 
    text = open(text_file).read() 
    print(doit(text)) 

또는 한 줄만 있기 때문에 함수에서 re를 래핑하지 않고 한 줄씩 실행하면됩니다.

0

나는 그것을 알아 낸다. 버그는 내 코드에서 오지 않는다. Mac에서 "똑똑한 따옴표"를 사용하도록 설정 했으므로 따옴표를 읽을 때마다 특수 문자로 식별됩니다. 이 설정을 사용하면 키보드 설정에서 트릭을 수행합니다.

LOL 무슨 "버그".

관련 문제