Python: TypeError: требуется целое число

Я пытаюсь получить контрольную сумму md5 некоторых файлов и записать их во временный файл.

import os
import hashlib

PID = str(os.getpid()) 
manifest = open('/temp/tmp/MANIFEST.'+ PID + '.tmp','w') #e.g. MANIFEST.48938.tmp
for elmt in files_input:
    input = open(elmt['file'], "r", 'us-ascii') #'us-ascii' when I ran "file --mime"
    manifest.write(hashlib.md5(input.read()).hexdigest()) 

Из этого я получаю ошибку Python, которую мне не удалось устранить:

Traceback (most recent call last):
 File "etpatch.py", line 131, in <module>
    input = open(elmt['file'], "r", 'us-ascii')
TypeError: an integer is required

У некоторых людей была эта ошибка при выполнении "из os import *", но я не делаю этого и не использую import * на любом другом модуле.

1 ответ

Третий аргумент open() ожидается, что будет целым числом:

open(name[, mode[, buffering]])

Необязательный аргумент буферизации указывает желаемый размер буфера файла: 0 означает небуферизованный, 1 означает буферизацию строки, любое другое положительное значение означает использование буфера (приблизительно) этого размера (в байтах). Отрицательная буферизация означает использование системного значения по умолчанию, которое обычно буферизуется строкой для tty-устройств и полностью буферизуется для других файлов. Если опущено, используется системное значение по умолчанию. [2]

Другие вопросы по тегам