Tôi đang cố phân tích một tệp lớn, từng dòng một, để có thông tin liên quan. Tôi có thể đang nhận tệp nén hoặc giải nén (tôi có thể phải chỉnh sửa tệp zip ở giai đoạn sau).Phân tích các tập tin lớn, có thể nén, bằng Python
Tôi đang sử dụng mã sau nhưng tôi cảm thấy rằng, vì tôi không nằm trong câu lệnh with
, tôi không phân tích cú pháp dòng tệp và thực tế đang tải toàn bộ tệp file_content
vào bộ nhớ.
if ".gz" in FILE_LIST['INPUT_FILE']:
with gzip.open(FILE_LIST['INPUT_FILE']) as input_file:
file_content = input_file.readlines()
else:
with open(FILE_LIST['INPUT_FILE']) as input_file:
file_content = input_file.readlines()
for line in file_content:
# do stuff
Bất kỳ đề xuất nào về cách xử lý này? Tôi không muốn giải nén tệp bên ngoài khối mã, vì điều này cần phải là chung chung và tôi sẽ phải dọn dẹp nhiều tệp.
sử dụng 'readline()' thay vì 'readlines()' để đọc dòng tệp theo dòng – Stack
Tôi nghĩ rằng vấn đề là nhiều hơn để làm với thực tế bởi thời gian tôi nhận được để 'cho dòng trong file_content:' Tôi đã mở, đọc vào bộ nhớ và đóng tập tin. Tôi có thể sử dụng 'readline()' như là nhưng tôi phải lặp lại mã cho cả hai nhánh 'if else:'. – AllynH