while 루프를 처리하는 동안 오류가 발생했습니다. 실행할 번호를 입력 할 수 있으며 결과는 해당 .CSV에 올바르게 기록됩니다. 해당 번호의 섹션이 실행되고 나면 새 번호로 다시 시도할지 묻는 메시지가 표시됩니다. 새로운 숫자 코드를 실행하고 새로운 .CSV를 생성하지만 파일 크기는 0kb로 유지됩니다. 이 작업은 일단 완료되면 파일을 닫는 것과 관련이 있다고 생각했지만 거기에 f # .close()를 작성했습니다.Python : while 루프에서 파일을 닫는 중 문제가 발생했습니다.
예 : 1 번 코드를 선택하고 .CSV를 올바르게 실행하고 다른 실행 및 새 번호 (# 2)에 대해 예를 선택하면 코드 2가 실행되지만 올바르게 닫히지 않으므로 모든 정보가 두 번째 CSV.
이것은 첫 번째 또는 두 번째 선택 번호와 상관없이 발생합니다. (예 : 3 개 실행 잘, 처음 3를 선택하고 고급 저장 그리고 정확하게 2 및 실행을 선택하지만 저장하지 않습니다..) 여기
내 현재 코드입니다 :f1 = file('1.csv', 'rb')
f2 = file('2.csv', 'rb')
f3 = file('3.csv', 'rb')
c1 = csv.reader(f1)
c2 = csv.reader(f2)
c3 = csv.reader(f3)
number = raw_input("Enter number: ")
while True:
if number == "1":
f4 = file('No_1_Results.csv', 'wb')
c4 = csv.writer(f4)
<snip> #do stuff here
print "Took ", time.time() - start, "seconds."
f4.close()
reset_answer = raw_input("Again? Type Y or N : ")
if reset_answer == ("n" or "N"):
print "Bye! from #1"
break
if reset_answer == ("y" or "Y"):
number = raw_input("Enter new number #: ")
continue
if reset_answer != ("n" or "N" or "y" or "Y"):
print "Y or N only allowed. Try again."
continue
if number == "2":
f5 = file('No_2_Results.csv', 'wb')
c5 = csv.writer(f5)
<snip> #do stuff here
print "Took ", time.time() - start, "seconds."
f5.close()
reset_answer = raw_input("Again? Type Y or N : ")
if reset_answer == ("n" or "N"):
print "Bye! from #2"
break
if reset_answer == ("y" or "Y"):
number = raw_input("Enter new number #: ")
continue
if reset_answer != ("n" or "N" or "y" or "Y"):
print "Y or N only allowed. Try again."
continue
if number =="3":
f6 = file('No_3_Results.csv', 'wb')
c6 = csv.writer(f6)
<snip> #do stuff here
print "Took ", time.time() - start, "seconds."
f6.close()
reset_answer = raw_input("Again? Type Y or N : ")
if reset_answer == ("n" or "N"):
print "Bye! from #3"
break
if reset_answer == ("y" or "Y"):
number = raw_input("Enter new number #: ")
continue
if reset_answer != ("n" or "N" or "y" or "Y"):
print "Y or N only allowed. Try again."
continue
if number is not "1" or "2" or "3":
print "Invalid number selected."
number = raw_input("Please choose a number: ")
continue
f1.close()
f2.close()
f3.close()
주 : 파이썬 2.6 사용 Windows에서/여전히 파이썬 배우기 -
계속 것인가? –
파일 논리가 정상적으로 보입니다. ''의 개폐 사이에 어떤 현상이 발생합니까? –
'if number == n :'코드를 함수로 넣지 않아도되므로 코드를 변경하면 3 개 (또는 그 이상)를 입력 할 필요가 없습니다. –