23

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)

同じエラーが発生しました。このエラーが発生する理由を誰かが知っていますか?

4

2 に答える 2

46

'w'モードを;として指定して、書き込み用にファイルを開きました。代わりに、ファイルを開いて読み取ります。

open(path, 'r')

'r'はデフォルトなので、省略できます。読み取りと書き込みの両方が必要な場合は、次の+モードを使用します。

open(path, 'w+')

w+書き込み用にファイルを開きます(0バイトに切り捨てます)が、ファイルからの読み取りも可能にします。使用する場合r+は、読み取りと書き込みの両方で開かれますが、切り捨てられることはありません。

r+またはなどのデュアルモードを使用する場合は、読み取り操作と書き込み操作の両方を使用するとファイル内の現在の位置が移動し、その現在のファイルを移動する可能性が高いため、この方法w+にも精通している必要があります。そのような操作の間に明示的に配置します。.seek()

詳細については、関数のドキュメントをopen()参照してください。

于 2012-11-09T14:05:13.790 に答える
1

Simple mistake if you think about it it. In your code you are doing:

myfile = open('/path/to/file/t1.txt','w')

Which specifies it is for writing, what you need to do is set this to r which is for read

myfile = open('/path/to/file/t1.txt','r')
于 2012-11-09T14:10:58.660 に答える