从 BASE64 文件中获取文件类型
Get filetype from BASE64 file
从base64字符串获取文件类型的方法是什么?
- 我需要一个适用于 Windows 和 Linux(Centos7)
的解决方案
例如:这是字符串; eHh4eHh4
这是一个包含 xxxxxx
的文本文件。
如果网站可以做到这一点,我想 python 也可以做到:
https://base64.guru/converter/decode/file
我尝试过的:
- 使用
magic
- 使用
imghdr
您可以将 base64 内容写入 BytesIO:
import base64
import magic # https://pypi.org/project/python-magic/
import io
data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg=='
bytesData = io.BytesIO()
bytesData.write(base64.b64decode(data))
bytesData.seek(0) # Jump to the beginning of the file-like interface to read all content!
print(magic.from_buffer(bytesData.read()))
输出:
PNG image data, 1 x 1, 8-bit/color RGBA, non-interlaced
从base64字符串获取文件类型的方法是什么?
- 我需要一个适用于 Windows 和 Linux(Centos7) 的解决方案
例如:这是字符串; eHh4eHh4
这是一个包含 xxxxxx
的文本文件。
如果网站可以做到这一点,我想 python 也可以做到:
https://base64.guru/converter/decode/file
我尝试过的:
- 使用
magic
- 使用
imghdr
您可以将 base64 内容写入 BytesIO:
import base64
import magic # https://pypi.org/project/python-magic/
import io
data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg=='
bytesData = io.BytesIO()
bytesData.write(base64.b64decode(data))
bytesData.seek(0) # Jump to the beginning of the file-like interface to read all content!
print(magic.from_buffer(bytesData.read()))
输出:
PNG image data, 1 x 1, 8-bit/color RGBA, non-interlaced