whileループを処理するときにエラーが発生しました。私は実行したい番号を入力することができ、結果は対応する.CSVに正しく書き込まれます。その番号のセクションが実行されたら、新しい番号で再試行するかどうか尋ねられます。それは新しい数値コードを実行し、新しい.CSVを作成しますが、ファイルサイズは0kbのままです。私はこれが完了したらファイルを閉じることと関係があると思ったが、そこにf#.close()を書いた。Python:whileループでファイルを閉じる際の問題
例:番号1を選択し、#1のコードを実行し、.CSVを正しく保存し、別の実行と新しい番号(#2)に「はい」を選択するとコード2が実行されますが、 2番目のCSV。
これは、1番目と2番目のどちらを選択したかにかかわらず発生します。 (例:。。その後2及び実行を選択しますが、正しく保存されません、最初の3を選ぶ3つの実行ファイン、ファインセーブ):
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()
注:Pythonの2.6を使用して
ここに私の現在のコードですWindowsの場合/まだPythonを学んでいる場合 -
を続けるのでしょうか? –
ファイルのロジックが正常に見えます。オープンとクローズの間の ' 'で何が起こっていますか? –
'if number == n:'コードを関数として入れて3つ(コードを変更した場合はそれ以上)を入力する必要はないのはなぜですか? –