Chuyển vào một tệp văn bản có một hình ảnh base64 trên mỗi dòng. Điều này sẽ viết ra một chuỗi các hình ảnh, như image0001.png, image0002.png,
import fileinput import base64 for index, line in enumerate(fileinput.input(), 1): if line.startswith('data:image/png;base64,'): with open('image{0:04}.png'.format(index), 'wb') as png: line = line.strip() png.write(base64.b64decode(line[22:] + '===='))Lưu cái này vào một tệp như decode.py, sau đó chạy nó với
python3 decode.py input.txtNếu tệp đầu vào của bạn là CSV có một cột, thì đó cũng là tệp văn bản, vì vậy bạn có thể sử dụng tệp đó trực tiếp (mặc dù CSV có thể có trích dẫn mà bạn cần phải cắt bỏ). Nếu bạn thực sự phải chấp nhận đầu vào trong một bảng tính Excel phù hợp, thì việc xuất bảng tính đó sang CSV là một quy trình thủ công, đây là một lý do chính đáng để tránh Excel nếu bạn có thể
Dựa trên nhận xét của bạn, đây là một nỗ lực để sử dụng mô-đun xlrd để đọc Excel trực tiếp, nhưng tôi (rất may) không có gì để kiểm tra nó
import base64 import xlrd workbook = xlrd.open_workbook("images.xlsx") worksheet = workbook.sheet_by_name("Sheet1") for idx in range(1, worksheet.nrows+1): excel_data = worksheet.cell(idx-1,0).value if excel_data.startswith('data:image/png;base64,'): with open('image{0:04}.png'.format(idx), 'wb') as png: png.write(base64.b64decode(excel_data.strip()[22:] + '===='))Nỗ lực của bạn đang sử dụng dữ liệu base64 excel_data thay vì chỉ mục trong đối số thành open chỉ định tên tệp. python3 decode.py input.txt 0 chạy từ 1 đến số của hàng dữ liệu cuối cùng
phụ lục. Một số dữ liệu dường như bị sai. Tôi đã cố gắng trích xuất ảnh của bạn bằng cách hack sau, nhưng tôi không chắc liệu nó có thực sự tạo ra đầu ra chính xác hay không - cách này có vẻ hiệu quả với những hình ảnh tôi đã thử, nhưng nó có thể gây ra lỗi vì tôi chỉ đơn giản là bỏ ký tự base64 cuối cùng
Nó có thể được kiểm tra, chọn một ô từ cột "B. B", trong đó một chuỗi được mã hóa đã được trả về bởi mã trước đó và chạy thử nghiệm tiếp theo Sub
Sub testDecodeBase64() Debug.Print StrConv(DecodeBase64(ActiveCell.Value), vbUnicode) End SubNếu việc tạo tham chiếu có vẻ phức tạp, vui lòng trước khi chạy mã trên, hãy chạy mã tiếp theo để tạo tự động
Base64 là một thuật ngữ chung cho một số sơ đồ mã hóa tương tự mã hóa dữ liệu nhị phân bằng cách xử lý dữ liệu đó bằng số và dịch nó thành biểu diễn cơ sở 64. Thuật ngữ Base64 bắt nguồn từ mã hóa chuyển nội dung MIME cụ thểGiải mã Base64 thành tệp bằng bộ giải mã trực tuyến miễn phí, cho phép bạn xem trước các tệp trực tiếp trong trình duyệt, cũng như tải chúng xuống, lấy kết xuất hex cho bất kỳ dữ liệu nhị phân nào và nhận thông tin tóm tắt về tệp gốc. Xin lưu ý rằng bản xem trước chỉ khả dụng cho các giá trị văn bản và các tệp phương tiện đã biết như hình ảnh, âm thanh và video. Trong mọi trường hợp, bạn luôn có thể chuyển đổi Base64 thành nhị phân và tải xuống kết quả dưới dạng tệp, bất kể loại MIME của nó. Nếu bạn đang tìm quy trình ngược lại, hãy kiểm tra File to Base64
Cơ sở64*Giải mã Base64 thành tệpXem trước
Kết quả giải mã Base64 sẽ hiện ra tại đây
Cách chuyển đổi Base64 thành tệp
- Dán chuỗi của bạn vào trường “Base64”
- Nhấn nút “Giải mã Base64 thành tệp”
- Nhấp vào liên kết tên tệp để tải xuống tệp
Các tính năng của bộ giải mã là gì
Sau khi giải mã chuỗi Base64, bạn sẽ có thể
- Xem trước tệp (ví dụ: bạn sẽ thấy trình phát hình ảnh hoặc video)
- Tải xuống tệp bằng cách nhấp vào liên kết đặc biệt
- Đọc thông tin về tệp gốc (chẳng hạn như loại MIME, phần mở rộng, kích thước)
- Phân tích kết xuất hex của tệp