[英]Writing output to a single csv file in python
我是編程新手。 對於核心開發人員來說,可能要求很簡單。
我有 5.log 文件,它們是數據庫的日志文件。 在這里,我想讀取這些所有文件,檢查這些文件中的錯誤和成功消息,並將錯誤和成功消息連同我讀取的文件名一起寫入單個 csv 文件。
import glob
file_list = glob.glob('C:\\Users\\Rahul\\AppData\\Roaming\\JetBrains\\PyCharmCE2021.3\\*.log')
file_out = open('error.csv', "a") #creating a csv file
for file in file_list:
file_in = open(file, "r").readlines()
count = 0
for line in file_in: # Loop every line
if 'ERROR' in line: # Search for ERROR in line
count += 1
file_out.write(str(count) +"error.csv"+ "," + line + "\n") #writing csv file
elif 'SUCCESS' in line: # Search for SUCCESS in line
print(line) # Print line
file_out.close()
我想將如下所示的文件 output 寫入單個 CSV 文件
Filename:test.log Error: Compilation error
Filename:test2.log Success: It is successful
有什么幫助或建議嗎?
這是一個建議。 標准庫中有一個名為fileinput
的整潔模塊,它允許您輕松地連續讀取多個文件,還可以讓您訪問文件名、行號等。嘗試類似以下的操作,看看它是否符合您的需要:
import glob
import fileinput
file_list = glob.glob(...)
with fileinput.input(file_list) as fin,\
open("error.csv", "a") as fout:
out = "Filename: {}, Line: {}, {}: {}\n"
write = False
for line in fin:
line = line.rstrip()
line_folded = line.casefold()
if "error" in line_folded:
write, var = True, "Error"
elif "success" in line_folded:
write, var = True, "Success"
if write:
fout.write(out.format(fin.filename(), fin.filelineno(), var, line))
write = False
有點不清楚為什么要編寫 CSV 文件:您的 output 看起來不像是 csv 格式的?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.