python中的csv模組是如何寫入檔案的

2021-10-01 19:33:57 字數 3327 閱讀 2122

在網路爬蟲中我們一般都是爬取的資料,最後一般會寫入到excel檔案中,所以不可避免的要用到csv模組,所以弄清楚csv模組是如何寫入檔案的就顯得十分重要了。這裡要說的資料型別不是dataframe,因為那樣很容易就弄清楚是怎麼寫入的,本文主要介紹要寫入的資料儲存在列表中的情形,比如:

data =
接下來我們將會詳細說明csv模組是如何寫入檔案的

首先我們要知道寫入檔案的基本語法結構如下

import csv

data =

file_name = "d://wangyang//練習的python程式//網路爬蟲"

with open(file_name, "w+", errors="ignore") as f:

f_csv = csv.writer(f)

f_csv.writerows(data)

這裡我們簡要介紹一下open函式的一些用法,

詳細介紹可以參考open函式——菜鳥驛站

需要填檔名(包含絕對路徑+檔名),比如

file_name = "d://wangyang//練習的python程式//網路爬蟲"
表示在電腦d盤的wangyang資料夾中的網路爬蟲檔案裡的writefile.csv檔案

更多模式如下,可以根據需要進行選擇

注意:不管選擇哪種寫入模式,

在執行程式之前都要把檔案關閉

,否則會報錯,因為它比較害羞你看著它的話,它是沒有辦法寫入的!

open函式中還有很多可選引數,可以根據需要進行選擇,這裡主要介紹以下兩個,詳細的介紹可以在網上查

errors="ignore"表示當寫入文件遇到錯誤是自動跳過,寫入下乙個元素。因為有可能在爬蟲的過程中有none值,寫入的時候會報錯,這時我們忽略它。

newline=""表示不要空行

比如

import csv

data =

x1 = str("你好")

data2 = [["id", "123"], x1, "***", "male"]

file_name = "d://wangyang//練習的python程式//網路爬蟲"

with open(file_name, "w+", errors="ignore") as f:

f_csv = csv.writer(f)

f_csv.writerows(data2)

結果如下

給open函式加上newline引數後,如

import csv

data =

x1 = str("你好")

data2 = [["id", "123"], x1, "***", "male"]

file_name = "d://wangyang//練習的python程式//網路爬蟲"

with open(file_name, "w+", errors="ignore", newline="") as f:

f_csv = csv.writer(f)

f_csv.writerows(data2)

結果如下

這裡主要介紹的是writerow與writerows的區別,我們先簡單看看下面的例子,要寫入的檔案如下

data = ["id", "123", "***", "male"]
其他**均一樣用writerow寫入的結果

用writerows寫入的結果

首先我們要了解到csv寫入的是乙個可迭代物件(比如列表,字串),writerow只寫入一維的資料,而writerows寫入二維的資料,具體解釋如下

兩者主要的區別就是:writerow只拆一次寫入,writerows拆兩次寫入(這裡的拆都是拆的可迭代物件,如列表、字串等)

writerow只拆一次,拆的原則是從外往裡拆,第一次將列表拆成四個物件「id」,"123","***","male",好了只能拆一次,所以依次把這四個物件分別寫入單元格中。

再比如我們看下面的例子

data2= [["id", "123"], "***", "male"]
首先拆一次,得到下面三個物件

第乙個物件:列表["id","123"];第

二、三個物件分別是:"***","male"(兩者都是字串)

好了,因為只能拆一次,所以把這三個物件分別寫入單元格中,如下所示

wirterows拆兩次,這裡說的不是能拆兩次,是必須拆兩次!看之前的例子,首先拆第一次,得到四個物件,分別是

"id","123","***","male"(均是字串)

因為必須拆兩次,所以還要繼續拆(因為它們都是字串,只能拆可迭代物件,所以可以繼續),比如第乙個

「id」可以拆開為,i,d,分別寫入單元格中,在同一行中

另起一行拆第二個物件,後面類似。

再考慮例子data2,首先拆第一次,得到三個物件,好的,接下來來拆第乙個物件

因為它是乙個列表,可迭代物件之一,所以能拆,拆成兩個物件分別為:「id」,"123"(兩個都是字串,還是能拆的,但是不能繼續拆了,因為已經拆了兩次了),所以id在同乙個單元格內,與「123」在同一行,另起一行繼續拆別的物件,所以結果如下:

最後看下面的例子

data3 = [[["id", "123"], "***"], "male"]
現在猜猜看最後的結果是什麼

是不是跟你猜的結果一樣呢?

python中的csv模組

最近學習機器學習遇到了csv這個包,怎麼用呢,這成了乙個疑問,從網上查了一下,簡單的總結一下。什麼是csv?csv檔案格式是一種通用的電子 和資料庫匯入匯出格式。可以用來處理從csv檔案中讀入,讀出一系列的數值或字典。csv的基本應用 先來做乙個比較吧 1 with open c users l d...

OpenCart中基於重量的配送模組是如何工作的?

opencart中基於重量的配送模組讓你使用自己的 折算表來決定配送 可以基於不同的重量允許設定 範圍,重量和 的格式如下 weight 重量 cost weight 重量 cost 等 例如,如果你想做如下的設定 總重量等於或小於 10lbs 運費 10 總重量介於 11 20lbs 運費 15 ...

python中 ,CSV模組的讀操作

一 python的csv模組 python自帶了csv模組提供使用者對csv檔案進行讀寫操作 csv是comma separated values的縮寫,是用文字檔案形式儲存的 資料 二 csv的讀操作 檔案 test data.csv 1 reader函式 接受乙個可迭代的物件,比如csv檔案,返...