[解決済み] AttributeError: '_io.TextIOWrapper' オブジェクトに 'next' 属性がない python
2022-02-09 11:36:40
質問
Python 3.3.3を使っています。私は tutorialspoint.com のチュートリアルをやっています。このエラーが何であるか理解できません。
以下は私のコードです。
fo = open("foo.txt", "w")
print ("Name of the file: ", fo.name)
# Assuming file has following 5 lines
# This is 1st line
# This is 2nd line
# This is 3rd line
# This is 4th line
# This is 5th line
seq = ["This is 6th line\n", "This is 7th line"]
# Write sequence of lines at the end of the file.
fo.seek(0, 2)
line = fo.writelines( seq )
# Now read complete file from beginning.
fo.seek(0,0)
for index in range(7):
# line = fo.next()
print ("Line No %d - %s" % (index, line)+"\n")
# Close opend file
fo.close()
エラーです。
Name of the file: foo.txt
Traceback (most recent call last):
File "C:/Users/DELL/Desktop/python/s/fyp/filewrite.py", line 19, in <module>
line = fo.next()
AttributeError: '_io.TextIOWrapper' object has no attribute 'next'
解決方法は?
ここで問題に直面している理由は2つあります。ひとつは
fo
を書き込み専用にしています。読み書きができるファイルオブジェクトが必要です。また
with
キーワードを使用すると、ファイルオブジェクトを使い終わった後に、手動で閉じることを気にすることなく、自動的にファイルオブジェクトを破棄することができます。
# the plus sign means "and write also"
with open("foo.txt", "r+") as fo:
# do write operations here
# do read operations here
2つ目は、(貼り付けたエラーが非常に強く示唆しているように)ファイルオブジェクトの
fo
は、テキストファイル・オブジェクトでありながら
next
メソッドを使用します。Python 2.x用に書かれたチュートリアルを使っているのに、Python 3.xを使っているのですから、これはうまくいかないでしょう。(私は
next
はPython 2.xでは有効だった/かもしれないが、3.xでは無効だ)。むしろ、最も類似しているのは
next
は、Python 3.xでは
readline
というように
for index in range(7):
line = fo.readline()
print("Line No %d - %s % (index, line) + "\n")
この方法は、ファイルが少なくとも7行以上ある場合にのみ動作することに注意してください。そうでない場合は、例外が発生します。より安全で簡単な方法は、forループを使用することです。
index = 0
for line in file:
print("Line No %d - %s % (index, line) + "\n")
index += 1
また、もう少しパイソン的な表現にしたい場合は 列挙する という関数があります。
for index, line in enumerate(file):
print("Line No %d - %s % (index, line) + "\n")
関連
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] Pythonで、あるオブジェクトが反復可能かどうかを判断するにはどうしたらいいですか?
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] Pythonでnullオブジェクトを参照する
-
[解決済み] エラーです。" 'dict' オブジェクトには 'iteritems' という属性がありません "
-
[解決済み] AttributeError: 'NoneType' オブジェクトには 'something' という属性がありません」と表示されるのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
python string splicing.join()とsplitting.split()の説明
-
Python Decorator 練習問題
-
Python jiabaライブラリの使用方法について説明
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] 組込み開関数におけるモードa、a+、w、w+、r+の違い?