python數據處理(一)


csv數據處理ReaderWriterexcel數據處理

csv數據處理

csv表示”Comma-Separated Values(逗號分隔的值)”,csv文件時簡化的電子表格,保存為純文本文件。
python中解析csv文件可以使用csv模塊。

  • 注意:csv是文本文件,通過打開文件的操作,將其內容讀入一個字符串,然后通過字符串的split()方法處理每行文本取得值。需要注意csv文件中也有自己的轉義字符,允許逗號或者其他字符作為值的一部分,split()方法無法處理這部分轉義字符。所以處理csv文件時為避免這些潛在的問題,建議使用csv模塊處理csv文件。

Reader

使用csv模塊從csv文件中讀取數據,需要創建一個Reader對象,可以通過Reader對象迭代遍歷csv文件中的每一行。

import csv
with open("example.csv", encoding='utf-8') as dataObject:
dataReader = csv.reader(dataObject)
for row in dataReader:
print("第{0}行:{1}".format(dataReader.line_num, row))
Reader對象的line_num變量是當前的行號。
輸出結果
1行:['2018/06/09', 'Apples', '73']
2行:['2018/06/10', 'Cherries', '85']
3行:['2018/06/11', 'Pears', '14']

Writer

Write對象可以將數據寫入到csv文件中。
首先調用open()並傳入w,以寫模式打開一個文件。這時會創建一個對象。
然后將創建的對象傳遞給csv.writer(),創建一個Writer對象。
接下來調用Writer對象的writerow()方法寫入文件。該方法接受參數為列表,返回值為寫入文件這一行中的字符數(包括換行符)。

import csv
with open("test.csv", 'w', encoding='utf-8', newline='') as outputFile:
dataWriter = csv.writer(outputFile)
dataWriter.writerow(['a', 'b', 'c'])
dataWriter.writerow(['啊', '吧', '次'])
dataWriter.writerow(['A', 'Hello,World!', 'C'])
最后輸出結果
a,b,c
啊,吧,次
A,"Hello,World!",C

此處的Hello,Wrold!中的逗號自動轉義,使用雙引號處理了。
在windows中open()需加上newline=''參數,否則將出現2倍行距的情況。
寫入的文件必須已經存在。

delimiter 指定分隔符,默認為逗號
lineterminator 行距,默認為單倍行距

dataWriter = csv.writer(outputFile, delimiter='\t', lineterminator='\n\n')

上面表示使用制表符作為分隔符,兩倍行距(也就是行之間字符變為2個換行符)。

excel數據處理

excel的操作都是通過第三方庫來進行。常用的有xlrd、xlwt、xluntils、pyExcelerator、openpyxl。

  • xlrd只能進行讀取excel文件,沒法進行寫入文件。
  • xlwt可以寫入文件,但是不能在已有的excel的文件上進行修改。
    vxluntils可以對文件進行復制和修改,該模塊功能實現依賴於xlrd和xlwt。
  • pyExcelerator模塊與xlwt類似,也可以用來生成excel文件,同時支持單元格合並、凍結等操作。
    vopenpyxl也支持文件的讀取、寫入、創建和刪除工作表、設置字體格式、單元格合並、凍結等操作。


免責聲明!

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



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