[python]AttributeError: ‘NoneType’ object has no attribute ‘rstrip’

スポンサーリンク

以下のようなコードを書きました。
2か所エラーがありました。

環境は、Python3.7、Windows10

if cc.endswith(b'stream'):
    strpos = f.tell()
    while 1:
        # lll = f.readline()
        lll = fg.next()
        ccc = lll.rstrip()
        if ccc == 'endstream':

まず、1つ目。
fg.next()で、以下のエラー。

AttributeError: 'generator' object has no attribute 'next'

Python3系(細かいバージョンは未確認)で、next()から、__next__()に代わっています。

つぎに、2つ目。
ccc = lll.rstrip()で処理が進むと以下のエラー。

  File "C:/Users/aaa/PycharmProjects/untitled/test2.py", line 67, in get_imagelist_from_pdf
    ccc = lll.rstrip()
AttributeError: 'NoneType' object has no attribute 'rstrip'

NoneなTypeが返ってきているのに処理を進めていました。
rstrip()の結果がNoneであるかの判定が必要です。
参考:
https://stackoverflow.com/questions/41203823/attributeerror-nonetype-object-has-no-attribute-strip

修正後コード

if cc.endswith(b'stream'):
    strpos = f.tell()
    while 1:
        lll = fg.__next__()
        if lll is not None:
            ccc = lll.rstrip()
            if ccc == b'endstream':
                break

コメント

タイトルとURLをコピーしました