Chào mọi người,
Dạo này mình hay phải làm việc với các file log hoặc báo cáo dạng văn bản thuần túy (.txt). Việc lọc và trích xuất thông tin từ chúng để đưa vào Excel xử lý khá tốn thời gian, nhất là khi có hàng chục, thậm chí hàng trăm file.
Sau một thời gian mày mò, mình đã viết được một đoạn script Python nho nhỏ để tự động hóa việc này. Nay chia sẻ lại với mọi người, hy vọng có thể giúp ích cho ai đó đang gặp tình huống tương tự.
Ý tưởng chính:
- Duyệt qua tất cả các file .txt trong một thư mục chỉ định.
- Mở từng file, đọc nội dung.
- Áp dụng các quy tắc lọc (ví dụ: tìm các dòng chứa keyword, hoặc các dòng có định dạng nhất định).
- Trích xuất các phần dữ liệu quan tâm.
- Ghi dữ liệu đã lọc ra một file Excel duy nhất.
Ví dụ đoạn code cơ bản:
import pandas as pd
import os
def process_txt_files(folder_path, output_excel):
all_data = []
for filename in os.listdir(folder_path):
if filename.endswith(".txt"):
filepath = os.path.join(folder_path, filename)
with open(filepath, 'r', encoding='utf-8') as f:
for line in f:
# --- Logic lọc và trích xuất dữ liệu ở đây ---
# Ví dụ: Lọc các dòng chứa 'ERROR'
if 'ERROR' in line:
all_data.append({'Source File': filename, 'Content': line.strip()})
# Thêm các điều kiện lọc khác nếu cần
df = pd.DataFrame(all_data)
df.to_excel(output_excel, index=False)
print(f"Dữ liệu đã được ghi vào {output_excel}")
# --- Sử dụng ---
input_folder = 'duong_dan_toi_thu_muc_chua_file_txt'
output_file = 'ket_qua_loc_du_lieu.xlsx'
process_txt_files(input_folder, output_file)
Lưu ý:
- Bạn cần cài đặt thư viện pandas:
pip install pandas openpyxl - Phần
# --- Logic lọc và trích xuất dữ liệu ở đây ---là quan trọng nhất, bạn cần tùy chỉnh nó cho phù hợp với định dạng file .txt và yêu cầu lọc của mình. Có thể dùng regular expressions (regex) để xử lý các định dạng phức tạp hơn.
Hy vọng chia sẻ này hữu ích. Nếu ai có cách làm khác hoặc muốn thảo luận sâu hơn về xử lý file văn bản bằng Python thì cùng trao đổi nhé!