1. ホーム
  2. python

[解決済み】Python: AttributeError: '_io.TextIOWrapper' オブジェクトに 'split' 属性がない。

2022-01-19 22:23:39

質問

あるテキストファイルがあります。 goodlines.txt を読み込んで、テキストファイルの各行を含むリストを作りたいのです。

を使ってみましたが split() の手続きはこのようになります。

>>> f = open('goodlines.txt')
>>> mylist = f.splitlines()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_io.TextIOWrapper' object has no attribute 'splitlines'
>>> mylist = f.split()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_io.TextIOWrapper' object has no attribute 'split'

なぜこのようなエラーが発生するのでしょうか?それは私がどのように split() ? ( 私は python 3.3.2 )

解決方法は?

を使用しています。 str メソッドをオープン・ファイル・オブジェクトに対して実行します。

を呼び出すだけで、ファイルを行のリストとして読み込むことができます。 list() をファイルオブジェクトに追加します。

with open('goodlines.txt') as f:
    mylist = list(f)

これは が行います。 には改行文字が含まれます。リスト内包でこれらを取り除くことができます。

with open('goodlines.txt') as f:
    mylist = [line.rstrip('\n') for line in f]