2012-10-15 85 views
24

Tôi vừa mới thực hiện các bài tập về gzip trên python.Đọc từ một tệp gzip trong python

import gzip 
f=gzip.open('Onlyfinnaly.log.gz','rb') 
file_content=f.read() 
print file_content 

Và tôi không có đầu ra trên màn hình. Là người mới bắt đầu của python, tôi tự hỏi tôi nên làm gì nếu tôi muốn đọc nội dung của tệp trong tệp gzip. Cảm ơn bạn.

+5

Hãy thử 'in open ('Onlyfinnaly.log.gz', 'rb') read() giải mã ('zlib')'.. Nếu điều đó không hoạt động, bạn có thể xác nhận rằng tệp có chứa nội dung nào đó không? – Blender

+0

Vâng, tôi hoàn toàn chắc chắn có một tập tin có tên là 'Onlyfinally.log'. Và những gì tôi đang cố gắng làm là đọc nội dung và chọn một số nội dung để lưu trữ một tệp khác. Nhưng nó chỉ biến dòng trống trên màn hình. – Michael

+1

Mã của bạn có vẻ chính xác, nhưng lưu ý rằng bạn đang đọc toàn bộ tệp vào một chuỗi. Một cách hiệu quả hơn thường là đọc luồng gzip theo từng phần và xử lý chúng một lần. – Krumelur

Trả lời

31

Hãy thử gzipping một số dữ liệu thông qua THƯ VIỆN gzip như thế này ...

import gzip 
content = "Lots of content here" 
f = gzip.open('Onlyfinnaly.log.gz', 'wb') 
f.write(content) 
f.close() 

... sau đó chạy mã của bạn như được đăng ...

import gzip 
f=gzip.open('Onlyfinnaly.log.gz','rb') 
file_content=f.read() 
print file_content 

Phương pháp này làm việc cho tôi như cho một số lý do thư viện gzip không đọc được một số tệp.

+3

Bạn nên sử dụng 'with' như trong câu trả lời của @ Arunava, vì tệp sẽ bị đóng ngay cả khi xảy ra lỗi khi đọc (hoặc bạn quên nó). Tiền thưởng cũng ngắn hơn. – Mark

Các vấn đề liên quan