2016-11-15 36 views
2

如何將mysql select的行寫入日誌文件,以便每行都在換行符上,並且所有列都由「|」分隔?我怎樣才能將mysql中的行寫入python的日誌文件中

我正在使用python3。

編輯:

我看到我給了一些信息,對不起。

什麼我是這樣的:

query = 'SELECT * FROM `table1` where date < x' 

cursor = db.cursor() 
cursor.execute(query) 
rows = cursor.fetchall() 
filename = '/logs/data.log' 
fp = open(filename, 'w', newline='\n') 
myFile = csv.writer(fp, lineterminator='\n') 
myFile.writerows(rows) 

然而,這是逗號分隔,並可能發生有逗號的數據域和所有行層出不窮,而不是在一個新行追加。

而且有可能直接tar創建的文件?

+0

你可以發佈你寫的代碼來試圖解決這個問題,並描述具體是不是你期望或想要的方式工作嗎? – csmckelvey

+0

到目前爲止你做了什麼?你有沒有查詢過數據庫並得到結果?你有結果嗎?你知道['str.join()'](https://docs.python.org/3/library/stdtypes.html#str.join)嗎? –

+0

@takendarkk我編輯了我的問題,我從查詢中得到了很好的結果 – user3605780

回答

2

這裏是什麼,我想你需要的草圖:

import csv 
rows = cursor.fetchall() 
filename = '/logs/data.log' 
fp = open(filename, 'w') # newline='\n' not needed 

w = csv.writer(fp, lineterminator='\n', delimiter='|', quotechar='') 
w.writerows(rows) 

fetchall返回一個元組列表。 csv.writer文檔沒有說,但我預計會採取任何序列的序列。

+0

它給空的quotechar一個錯誤,但沒有quotechar它的作品。我在記事本中查看了該文件,該文件沒有在換行符上顯示行,但是在納米中卻行。謝謝。你碰巧知道我怎麼能直接打個比方? – user3605780