ORACLE数据库以BLOB类型存储PDF或ZIP格式的文件。我想保存这些文件。但是,我不知道如何识别它何时是 PDF,何时是 ZIP?是否可以检查 BLOB 存储在其中的文件格式?
以下是保存文件的简单write_file方法:
def write_file(data, filename):
with open(filename, 'wb') as f:
f.write(data)
在这里,我使用光标获取适当的 BLOB,并使用write_file
方法来保存文件:
firstRow = cur.fetchone()
write_file(firstRow[0].read(), "blah.zip")
如何识别何时为zip,何时为pdf?
您可以尝试通过检查读取的字节来检查文件签名。
据此: https://en.wikipedia.org/wiki/List_of_file_signatures
1( 以"50 4B 03 04"或"50 4B05 06"或"50 4B 07 08"开头的zip文件
2( pdf 文件以"25 50 44 46 2d"开头
因此,您可以检查前几个字节并检查它们是否等于文件签名 - 并在此基础上确定文件类型。