Python3使用csv模塊csv.writer().writerow()保存csv文件,產生空行的問題


問題:csv.writer().writerow()保存的csv文件,打開時每行后都多一行空行

解決方法:在open()內增加一個參數newline='' 即可
 
問題現象:
 
1.代碼
with open("C:\\Users\\XXX\\Desktop\\redis_log2.csv","w") as datacsv:
csvwriter = csv.writer(datacsv,dialect=("excel"))
csvwriter.writerow(["time","us","sy","cl","bcl","mem","rss","keys","cmd/s","exp/s","evt/s","hit%/s","hit/s","mis/s","aofcs"])
for info in parsecsv:
csvwriter.writerow([info["time"],info["us"],info["sy"],info["cl"],info["bcl"],info["mem"],info["rss"],info["keys"],info["cmd/s"],\
info["exp/s"],info["evt/s"],info["hit%/s"],info["hit/s"],info["mis/s"],info["aofcs"]])
2.導出的CSV用Excel打開:


更改好后的
1.代碼

with open("C:\\Users\\XXX\\Desktop\\redis_log2.csv","w", newline='') as datacsv:
    csvwriter = csv.writer(datacsv,dialect=("excel"))
csvwriter.writerow(["time","us","sy","cl","bcl","mem","rss","keys","cmd/s","exp/s","evt/s","hit%/s","hit/s","mis/s","aofcs"])
for info in parsecsv:
csvwriter.writerow([info["time"],info["us"],info["sy"],info["cl"],info["bcl"],info["mem"],info["rss"],info["keys"],info["cmd/s"],\
info["exp/s"],info["evt/s"],info["hit%/s"],info["hit/s"],info["mis/s"],info["aofcs"]])
2.導出的CSV用Excel打開:
 
        
 
 
對newline參數的解釋:

參數newline是用來控制文本模式之下,一行的結束字符。可以是None,’’,\n,\r,\r\n等。

當在讀取模式下,如果新行符為None,那么就作為通用換行符模式工作,意思就是說當遇到\n,\r或\r\n都可以作為換行標識,並且統一轉換為\n作為文本輸入的換行符。當設置為空’’時,也是通用換行符模式工作,但不作轉換為\n,輸入什么樣的,就保持原樣全輸入。當設置為其它相應字符時,就會判斷到相應的字符作為換行符,並保持原樣輸入到文本。

當在輸出模式時,如果新行符為None,那么所有輸出文本都是采用\n作為換行符。如果設置為’’或者\n時,不作任何的替換動作。如果是其它字符,會在字符后面添加\n作為換行符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM