ファイルsomething.zipからソースデータ全体を読み取る必要があります(解凍しないでください)
私は試した
f = open('file.zip')
s = f.read()
f.close()
return s
ただし、ソース データ全体ではなく、数バイトしか返されません。それを達成する方法はありますか?ありがとう
b
バイナリ ファイルを扱う場合は、binary mode( ) を使用します。
def read_zipfile(path):
with open(path, 'rb') as f:
return f.read()
ところで、manual の代わりにwith
statementclose
を使用してください。
前述のように、操作0x1A
を終了する EOF 文字 ( ) があり.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
これはそれを行う必要があります:
In [1]: f = open('/usr/bin/ping', 'rb')
In [2]: bytes = f.read()
In [3]: len(bytes)
Out[3]: 9728
比較のために、上記のコードで開いたファイルを次に示します。
-rwx------+ 1 xx yy 9.5K Jan 19 2005 /usr/bin/ping*