【python】組み込み関数open()でTypeError: an integer is required

open()でファイルを読み込もうとしたら
こんなエラーがでた。

Traceback (most recent call last):
  File "zzz_opentest.py", line 3, in <module>
    with open(file, "r", "utf-8") as f_r:
TypeError: an integer is required

バージョンは2.7を使っている。

Python 2.7.14

結論から言えば、3コ目の引数には文字コードではなく
ファイル読み込みのバッファ数を指定すべきなので、
(もしくは指定しない。)
「integerが必要だよ!」っとメッセージがでるようです。
2. 組み込み関数 — Python 2.7.14 ドキュメント




似たようなことで困った人いたみたい。
stackoverflow.com



どこで間違えたかなーと思い返すと
特殊なファイルをオープンするときに使う
gzipやcodecと間違えてた。

gzip.open(file, "r", "utf-8")
codecs.open(file, "r", "utf-8")

でencodingをつけてもエラーになる。

Traceback (most recent call last):
  File "zzz_opentest.py", line 4, in <module>
    with open(file, "r", encoding="utf-8") as f_r:
TypeError: 'encoding' is an invalid keyword argument for this function

調べてみたら、encodingはpython3からみたいですね。

qiita.com



まとめ



Pythonスタートブック [増補改訂版]

Pythonスタートブック [増補改訂版]