Ghi Log Trong Python Bằng File CSV
Hướng dẫn cách ghi log trong python đơn giản bằng file CSV. Bằng cách kết hợp mở và ghi file CSV trong python, bạn sẽ học được cách ghi log vào file CSV bằng phương thức write() trong python sau bài học này.
Ghi log trong python | phương thức write()
Ứng dụng phương mở file, đóng file và ghi file CSV trong python, chúng ta có thể tạo ra một hàm ghi log trong python vào file CSV đơn giản sau đây:
| import osimport datetimedef outfilewrite(log_name): #Tạo đường dẫn thư mục log file log_dir_path='./_logfile' os.makedirs(log_dir_path,exist_ok=True) #Lấy ngày tháng năm tạo log file d = datetime.datetime.now() timestr=d.strftime('%Y%m%d') #Chỉ định tên log file logfile_name= (log_name+"_"+timestr+'.csv') try: #Mở file log outfile=open(os.path.join(log_dir_path,logfile_name),'a+') #Ghi header của file csv vào logfile outfile.write("{},{},{},{}\n".format('No','Work','Result','Detail')) except PermissionError : print("\n Error : Cant open logfile. Please Try again") input(">>") sys.exit() return outfile |
Lưu ý là bạn cũng có thể chỉ định file log với đuôi .txt thay cho .csv ở trên. Tuy nhiên khi đọc file log thì định dạng CSV có thể nhìn rõ các cột với nội dung file log đã ghi vào, nên Kiyoshi khuyên bạn dùng định dạng .csv hơn trong chương trình này.
Lại nữa, khi tạo hàm trên chúng ta đã sử dụng các kiến thức mà bạn đã học tại các bài viết sau đây:
- os.makedirs : Tạo thư mục trong python
- datetime.datetime.now() : Lấy thời gian hiện tại trong python
- strftime():Chuyển datetime sang string trong python
- write(" ".format()):Định dạng chuỗi trong python bằng phương thức format
Cách ghi log trong python bằng hàm vừa tạo
Ví dụ, chúng ta có một thư mục có cấu trúc sau:
|data/ |--dir1 |--make_log.pyĐể sử dụng hàm, trước tiên chúng ta chạy hàm và gán kết quả của hàm là một file object vào một biến bất kỳ.
| logfile=outfilewrite("new_log") |
Khi đó, một file log có tên dạng new_log_yyyymmdd.csv sẽ được tạo ra trong thư mục _logfile như sau:
|data/ |--dir1 |--_logfile | |--new_log_20210518.csv |--make_log.pySau đó, tại bất cứ vị trí nào trong chương trình mà bạn cần ghi log trong python, hãy dùng phương thức write() với biến đó, bằng nhiều kiểu ghi log sau đây:
Ghi log nội dung tùy ý vào một dòng trong file log:
| logfile.write("log line 1\n") |
Ghi log nội dung vào các cột khác nhau trong file log:
| logfile.write("{},{},{}\n".format('1','Creat log file','Done'))logfile.write("{},{},{},{}\n".format('2','Write log','Eror','PermissionError')) |
Kết quả:
Bạn có thể dùng try catch với Exception trong python để lấy lỗi trả về từ python và ghi lỗi đó vào file log như sau:
| try: #chạy xử lý log_conttent1 = ["1","Creat Log file","Done",""]except Exception as e: log_conttent1 = ["1","Creat Log file","Error",e]log_conttent.append(log_conttent1) |
Trong đó, e chính là nội dung lỗi mà Python trả về nếu như xử lý bị lỗi khi chạy.
Ngoài ra bạn cũng có thể lưu trữ nội dung cần ghi vào file log dưới dạng list và sau đó ghi vào log file như sau:
| log_conttent=[]#chạy xử lý 1log_conttent1 = ["1","Creat Log file","Error",""]log_conttent.append(log_conttent1)#chạy xử lý 2log_conttent2 = ["2","write log file","Error","PermissionError"]log_conttent.append(log_conttent2)#chạyxử lý 3log_conttent3 = ["3","write log","Done",""]log_conttent.append(log_conttent3)#...#Sau khi hoàn thành các xử lý, ghi các nội dung log vào file logfor log in log_conttent: logfile.write("{},{},{},{}\n".format(log[0],log[1],log[2],log[3]))logfile.close() |
Kết quả:
Sau khi hoàn tất quá trình ghi log vào file CSV rồi, đừng quên sử dụng logfile.close() để đóng file log nhé.
Tổng kết và thực hành
Trên đây Kiyoshi đã hướng dẫn bạn về cách ghi log trong python bằng file CSV rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/csv-excel-json-xml-pdf/ghi-log-trong-python/
Từ khóa » Hàm Log Trong Python
-
Hàm Log() Trong Python - Học Lập Trình Python - VietTuts
-
[Tự Học Python] Các Hàm Toán Học Trong Python - Phần 2 ... - Cafedev
-
Hàm Log() Trong Python - Lập Trình Từ Đầu
-
Phương Thức Number Log() Trong Python
-
Log Functions In Python - GeeksforGeeks
-
Numpy.log Trong Python - W3seo Tìm Hiểu Logarit Tự Nhiên Trong Numpy
-
Ví Dụ Về Hàm Log (x, Base) Trong Python
-
Python: Các Hàm Toán Học Trong Python | V1Study
-
Log Cho Python, Sử Dụng Sao Cho đúng Và Dễ Nhận Biết? - Viblo
-
Tính Logarit Trong Python - HelpEx
-
What's New In Python 3.8 — Python 3.10.5 Documentation
-
Thư Viện Toán Học Python
-
Module Math Trong Python
-
Python: Cách Sử Dụng Hàm Lồng Nhau - Viblo