2017-02-15 3 views
0

사용자에게 6 개의 테스트 이름과 점수를 입력하고 tests.txt라는 텍스트 파일에 입력하라는 프로그램을 작성해야합니다. 루프를 사용해야합니다. 각 입력은 파일의 자체 행에 작성되어야합니다. 완료되면 프로그램에서 확인 메시지를 생성해야합니다. 내 프로그램을 실행하면 작동하지만 내가 마지막에 오류가 말을 얻을 :Python 파일에서 입출력 작업이 닫힙니다.

Traceback (most recent call last): 
    File "C:/Users/brittmoe09/Desktop/program6_1.py", line 34, in <module> 
    main() 
    File "C:/Users/brittmoe09/Desktop/program6_1.py", line 18, in main 
    test_scores.write(name + '\n') 
ValueError: I/O operation on closed file. 

내가 잘못하고있는 무슨 확실하지 않다, 어떤 도움을 주시면 감사하겠습니다. !

while name != '': 
 
    ...
이 당신의 "이름"= '', 첫 번째 루프에서 파일이 닫히고 두 번째 그렇다면 무한 루프는 다음과 같습니다 동안

def main(): 

    test_scores = open('tests.txt', 'w') 
    print('Entering six tests and scores') 

for count in range(6): 
    name = input('Enter a test name') 
    score = int(input('Enter % score on this test')) 

    while name != '': 
     test_scores.write(name + '\n') 
     test_scores.write(str(score) + '\n') 
     test_scores.close() 
     print('File was created successfully') 
main() 
+1

그럼 파일을 '닫습니다'** 'while'루프 안에 있습니까? 다음 반복입니다. 이것은 실패 할 것이다 ... –

답변

0

다음은 내가 한 일입니다. 두 번째 while 루프를 없애고 for 루프에서 파일을 닫으십시오. 오류를 일으키는 루프에서 파일을 닫으므로 (일부 변수 이름이 여러분의 것과 다릅니다)

test_scores = open('tests.txt','w')#open txt file 
print('Entering six tests and scores') 


for count in range(6):#for loop to ask the user 6 times 
    name = input('Enter a test name: ') 
    testscore = int(input('Enter % score on this test: ')) 
    for count2 in range(1): 
     test_scores.write(str(name) + '\n') 
     test_scores.write(str(testscore) + '\n') 
test_scores.close()#close the txt file 
print('File was created successfully!') 
0

블록 : 여기

내 코드입니다 루프를하면 오류가 발생합니다.