Python: TypeError: an integer is required
Question: 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.


Answer: The third argument to
[`open()`](http://docs.python.org/2/library/functions.html#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]

