2015-01-11 9 views
-2

꽤 오랫동안 텍스트 파일에서 질문과 답변을 읽고 화면에 표시하는 퀴즈 게임을 만들려고 노력했습니다. 나는의 standart 메모장 워드 프로세서를 통해이 .txt 파일을하고 "UTF-8"인코딩 (같은 디렉토리에) 파일을 저장Python을 사용하여 파일 읽기

def start_quiz() : 
    text_file = open("quiz_python.txt", "r", encoding = "utf-8") 
    for lines in text_file : 
     print(lines) 

: 나는 다음과 같은 기능을 사용했습니다. 그러나 프로그램을 시작하면 처음부터 충돌이 발생합니다. 그리고 놀랍습니다. IDLE에서 F5를 사용하여 프로그램을 실행하면 완벽하게 작동합니다. 그 순간에 나는이 모든 것에 대해 무엇을 생각해야할지 모르겠다. 왜냐하면 그것은 매우 이상하기 때문이다. 어떤 제안?

감사합니다. Victor.

+1

충돌의 스택 추적을 인쇄하십시오. stacktrace 또는 오류 메시지를 인쇄하지 않으면 사용자를 도울 수 없습니다. – ProgrammingIsAwsome

+0

아무 말도하지 않으면 파이썬 인터프리터가 ASCII로 가정한다는 점에 유의하십시오. 즉, 스크립트에서 비 ASCII 문자를 사용하면로드하는 파일뿐만 아니라 일부 오류가 발생할 수 있습니다. – bwagner

답변

-1

당신은 어떤 버전의 파이썬을 말하지 않았습니다. 사용하여 메 2.x

왜냐하면 당신은 인코딩 라인을 사용하고 있다고 생각합니다.

Python 2.7.8 (default, Dec 6 2014, 13:17:43) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> def start_quiz() : 
...  text_file = open("quiz_python.txt", "r", encoding = "utf-8") 
...  for lines in text_file : 
...   print(lines) 
... 
>>> start_quiz() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "<stdin>", line 2, in start_quiz 
TypeError: 'encoding' is an invalid keyword argument for this function 
>>> def start_quiz() : 
...  text_file = open("quiz_python.txt", "r") 
...  for lines in text_file : 
...   print(lines) 
... 
>>> start_quiz() 
stuff in a file 
>>> 

개인적으로는 파일을 처리 할 때 with open을 사용합니다.

>>> with open('workfile', 'r') as f: 
...  read_data = f.read() 

인코딩해야하는 경우; 모든 줄 또는 각 줄을 변수 str로 읽어 들이고 str.encode(encoding='UTF-8',errors='strict')을 실행하십시오.

관련 문제