顯示具有 python csv 標籤的文章。 顯示所有文章
顯示具有 python csv 標籤的文章。 顯示所有文章

2017年6月16日 星期五

Python邊學邊記錄-csv

Python CSV

csv.reader

python中已有處理csv的lib了,所以使用的時候直接import即可!
import csv
csvFile = open('demo.csv')
csvReader = csv.reader(csvFile)
csvData = list(csvReader)
這樣就可以把資料讀進csvData了
python csv

如果擔心csv檔案過大一次讀入會吃太多記憶體的話,那也可以透過for來處理!
for row in csvReader:
    print('Row:' + str(csvReader.line_num) + ' ' + str(row))
以type去查row的話,它的型態的是list,所以要轉成str來列印!
另外,以迴圈執行完之後,基本上指標已經跑到最後了,所以如果還要再來一次的話,就需要再執行一次csvReader=csv.reader(csvFile)

csv.writer

import csv
wFile = open('demo.csv', 'w', newline='')
wWriter = csv.writer(wFile)
wWriter.writerow(['1','2','3'])
wFile.close()  #  有開門就記得要關門!

這樣子,就會寫入檔案了,不過要注意的是操作的模式,'w'的話是會將檔案重頭開始,這部份當然要看是寫入後面還是怎麼樣子的,依情況來處理!

如果在寫入csv的時候想要改變定位點,不想要用『,』以及想要兩倍行距的話,在writer的時候就要指定了。
wWriter = csv.writer(wFile, delimiter='\t', lineterminator='\n\n')
#  delimiter代表定位點,lineterminator可調整行距







2017年6月8日 星期四

Python邊學邊記錄-csv與with open

Python csv、with open

處理資料免不了要保存下來,存成『JSON』或是『CSV』都是選項!
lib部份,記得要import csv!

假如我們已經把資料保存在一個list內了。
items = []

with open('abc.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)  #  建立一個寫入物件
    writer.writerow(('a', 'b', 'c'))  #  標題欄
    for item in items:
        writer.writerow((column for column in item))

with open的部份是python內的標準io模組的method。
第一個字串參數要新增或是處理的檔案名稱,範例為abc.csv
第二個字串參數是處理模式:
  • r讀取
  • w寫入(建立新檔或覆蓋原檔)
  • a附加在尾端
  • x寫入(建立新檔,若檔名存在即報錯)
  • t文字模式
  • b二進位模式
  • r+更新(檔案需存在,從頭開始讀寫)
  • w+更新(建立新檔或覆蓋,從頭開始讀寫)
  • a+更新(建立新檔或從舊檔尾端做讀寫)
第三個字串參數是編碼格式,這部份需視你爬的網頁格式。
第四個字串參數是換行符號

如果要取讀csv檔的話
with open('ezprice.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)  #  建立一個讀取物件
    for row in reader:
        print(row['a'], row['b'], row['c'])