I am trying to get the md5 checksum of some files and write them into a temp file.
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())
From this I get a Python error that I haven't able to resolve:
Traceback (most recent call last):
File "etpatch.py", line 131, in <module>
input = open(elmt['file'], "r", 'us-ascii')
TypeError: an integer is required
Some people have had this error from doing "from os import *" but I am not doing this nor am I using import * on any other module.
The third argument to open()
is expected to be an integer:
open(name[, mode[, buffering]])
The optional buffering argument specifies the file's desired buffer size: 0 means unbuffered, 1 means line buffered, any other positive value means use a buffer of (approximately) that size (in bytes). A negative buffering means to use the system default, which is usually line buffered for tty devices and fully buffered for other files. If omitted, the system default is used. [2]
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.