4

Pythonで44100000から44999999までの数字をループしようとしています。
私はこれを試しました:

f=open('of','w')
i=44100000
while i<=44999999 :
     f.write(str(i)+"\n")
     i+=1

しかし、それは不完全です!ofファイルの末尾は次のとおりです。

44999750
44999751
44999752
44999753
449997

最後の番号に注意してください

  1. 範囲内の最後の番号ではありません
  2. 不完全です!そして他のものと同じ長さではありません!

私がそれをもう一度やったとき、同じコードが私にこのファイルの尾を与えました:

44999993
44999994
44999995
44999996
44999997
44999998

そして3回目の実行は完全で正しい出力になりました:

44999994
44999995
44999996
44999997
44999998
44999999

これは毎回正しく機能しましたが:

for i in range(44100000,44999999):
     f.write('%d\n' % (i,))

何が問題ですか?ありがとう

4

1 に答える 1

7

プロセスを終了する前にファイルを閉じることができません。withステートメントでクリーンアップが必要なリソースを使用することをお勧めします。

with open('of', 'w') as f:
    f.write("Stuff")

# f.close() will be called automatically upon leaving the with-scope
于 2012-07-09T13:40:22.590 に答える