繁体   English   中英

Python:TypeError:必须为整数

[英]Python: TypeError: an integer is required

我正在尝试获取某些文件的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

某些人因执行“ from os import *”而出现此错误,但我没有这样做,也没有在其他模块上使用import *。

open()的第三个参数应为整数:

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

可选的buffering参数指定文件所需的缓冲区大小:0表示未缓冲,1表示行缓冲,任何其他正值表示使用(大约)该大小(以字节为单位)的缓冲区。 负缓冲意味着使用系统默认值,通常对tty设备使用行缓冲,而对于其他文件则使用完全缓冲。 如果省略,则使用系统默认值。 [2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM