一次读取整个文件

pet*_*ter 9 python file-io

我需要从文件中读取整个源数据something.zip(不解压缩)

我试过了

f = open('file.zip')
s = f.read()
f.close()
return s
Run Code Online (Sandbox Code Playgroud)

但它只返回几个字节而不是整个源数据.知道如何实现它吗?谢谢

fal*_*tru 25

b在处理二进制文件时使用二进制模式().

def read_zipfile(path):
    with open(path, 'rb') as f:
        return f.read()
Run Code Online (Sandbox Code Playgroud)

BTW,使用with声明而不是手动close.


Jon*_*nts 6

如前所述,有一个 EOF 字符 ( 0x1A) 来终止.read()操作。要重现并演示这一点:

# Create file of 256 bytes
with open('testfile', 'wb') as fout:
    fout.write(''.join(map(chr, range(256))))

# Text mode
with open('testfile') as fin:
    print 'Opened in text mode is:', len(fin.read())
    # Opened in text mode is: 26

# Binary mode - note 'rb'
with open('testfile', 'rb') as fin:
    print 'Opened in binary mode is:', len(fin.read())
    # Opened in binary mode is: 256
Run Code Online (Sandbox Code Playgroud)