1. ホーム
  2. python

[解決済み] Python IOError: ファイルが読み出し用に開かれていません

2022-01-31 10:01:07

質問

Pythonでファイルを開こうとするとエラーになります。以下は私のコードです。

>>> import os.path
>>> os.path.isfile('/path/to/file/t1.txt')
>>> True
>>> myfile = open('/path/to/file/t1.txt','w')
>>> myfile
>>> <open file '/path/to/file/t1.txt', mode 'w' at 0xb77a7338>
>>> myfile.readlines()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: File not open for reading

もやってみた。

for line in myfile:
    print(line)

と表示され、同じエラーが発生しました。なぜこのようなエラーが発生するのか、どなたかご存知でしょうか?

解決方法を教えてください。

モード指定で書き込み用にファイルをオープンし 'w' 代わりに読み込み用にファイルを開いてください。

open(path, 'r')

'r' はデフォルトなので、省略可能です。読み込みと書き込みの両方が必要な場合は + モードがあります。

open(path, 'w+')

w+ は、書き込み用にファイルを開く(0バイトに切り詰める)が、読み込みもできるようにする。もし r+ も読み書きのために開かれますが、切り捨てはされません。

などのデュアルモードを使う場合は r+ または w+ を理解する必要があります。 .seek() メソッド というのも、読み込みと書き込みの両方の操作を行うと、ファイルの現在位置が移動するため、そのような操作の間に明示的にファイルの現在位置を移動させたい場合がほとんどだからです。

を参照してください。 のドキュメントを参照してください。 open() 機能 をご覧ください。