現在、独学で Python を学んでおり、既存のファイルからのテキストの読み取りと追加の両方を行うスクリプトを作成して、ファイル I/O を学習しています。スクリプトは、write() メソッドを呼び出すまで実行されます。その時点で、特定されていない例外がスローされます。これがトレースバックです。
File "test.py", line 13, in <module>
f.write(txt)
IOError: [Errno 0] Error
私のコード:
from sys import argv
script, filename = argv
f = open(filename, 'a+')
print("The contents of %s are:") % filename
print f.read()
txt = raw_input("What would you like to add? ")
f.write(txt)
print("The new contents are:")
print f.read()
f.close()
私の環境は、Win7、PowerShell、および Notepad++ の Python 2.7.3 です。
これは何が原因ですか?どうすれば修正できますか?私の理解では、a+
アクセスモードにより、ファイルの読み取りと追加の両方が可能になるはずです。アクセス モードを に変更するr+
と、同じ例外が発生します。
説明:
次のように、スクリプトに引数として渡す単一の単語を含む既存のテキスト ファイル (a.txt) があります。
python test.py a.txt
私は Windows の管理者アカウントを使用しています。
結果:
少なくとも 2 つのseek()
コマンドを追加すると、問題が修正されます。詳細については、回答の投稿を参照してください。