欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python爬蟲第6關csv&excel

系統 1653 0

python爬蟲第6關csv&excel_第1張圖片
前面講到json是特殊的字符串。其實,csv也是一種字符串文件的格式,它組織數據的語法就是在字符串之間加分隔符——行與行之間是加換行符,同列之間是加逗號分隔。
它可以用任意的文本編輯器打開(如記事本),也可以用Excel打開,還可以通過Excel把文件另存為csv格式(因為Excel支持csv格式文件)。
將我們剛剛寫入的csv文件下載到本地電腦,再用記事本打開,你會看到:
python爬蟲第6關csv&excel_第2張圖片
用Excel打開,則是這樣的:
python爬蟲第6關csv&excel_第3張圖片
發現了嗎?csv文件里的逗號可以充當分隔同列字符串的作用。
用csv格式存儲數據,讀寫比較方便,易于實現,文件也會比Excel文件小。但csv文件缺少Excel文件本身的很多功能,比如不能嵌入圖像和圖表,不能生成公式。

存儲數據的基礎知識
python爬蟲第6關csv&excel_第4張圖片
存儲成csv格式文件和存儲成Excel文件,這兩種不同的存儲方式需要引用的模塊也是不同的。操作csv文件我們需要借助csv模塊;操作Excel文件則需要借助openpyxl模塊。

csv格式文件寫入與讀取。

首先,我們要引用csv模塊。因為Python自帶了csv模塊,所以我們不需要安裝就能引用它。
你是不是會困惑,明明前面csv寫入我們可以直接用open函數來寫,為什么現在還要先引用csv模塊?答案:直接運用別人寫好的模塊,比我們使用open()函數來讀寫,語法更簡潔,功能更強大,待會你就能感受到。

            
              import csv
#引用csv模塊。
csv_file = open('demo.csv','w',newline='',encoding='utf-8')
#創建csv文件,我們要先調用open()函數,傳入參數:文件名“demo.csv”、寫入模式“w”、newline=''、encoding='utf-8'。


            
          

加newline=’ '參數的原因是,可以避免csv文件出現兩倍的行距(就是能避免表格的行與行之間出現空白行)。加encoding=‘utf-8’,可以避免編碼問題導致的報錯或亂碼。
創建完csv文件后,我們要借助csv.writer()函數來建立一個writer對象。

            
              import csv
#引用csv模塊。
csv_file = open('demo.csv','w',newline='',encoding='utf-8')
#調用open()函數打開csv文件,傳入參數:文件名“demo.csv”、寫入模式“w”、newline=''、encoding='utf-8'。
writer = csv.writer(csv_file)
# 用csv.writer()函數創建一個writer對象。

            
          

那怎么往csv文件里寫入新的內容呢?答案是——調用writer對象的writerow()方法。
writer.writerow([‘電影’,‘豆瓣評分’])
#借助writerow()函數可以在csv文件里寫入一行文字 "電影"和“豆瓣評分”.
提醒:writerow()函數里,需要放入列表參數,所以我們得把要寫入的內容寫成列表。就像[‘電影’,‘豆瓣評分’]。

            
              import csv
#引用csv模塊。
csv_file = open('demo.csv','w',newline='',encoding='utf-8')
#調用open()函數打開csv文件,傳入參數:文件名“demo.csv”、寫入模式“w”、newline=''、encoding='utf-8'。
writer = csv.writer(csv_file)
# 用csv.writer()函數創建一個writer對象。
writer.writerow(['電影','豆瓣評分'])
#調用writer對象的writerow()方法,可以在csv文件里寫入一行文字 “電影”和“豆瓣評分”。
writer.writerow(['銀河護衛隊','8.0'])
#在csv文件里寫入一行文字 “銀河護衛隊”和“8.0”。
writer.writerow(['復仇者聯盟','8.1'])
#在csv文件里寫入一行文字 “復仇者聯盟”和“8.1”。
csv_file.close()
#寫入完成后,關閉文件就大功告成啦!


            
          

Mac的編碼方式是‘gbk’
用csv模塊寫入數據這一個知識點我們已經清楚。接下來我們可以繼續學習怎么讀取csv文件的數據。

            
              import csv
csv_file=open('demo.csv','r',newline='',encoding='gbk')
reader=csv.reader(csv_file)
for row in reader:
    print(row)
    

            
          

第1、2行代碼:導入csv模塊。用open()打開“demo.csv”文件,‘r’是reader讀取模式,newline=’'是避免出現兩倍行距。encoding='utf-8’能避免編碼問題導致的報錯或亂碼。
第3行代碼:用csv.reader()函數創建一個reader對象。
第4、5行代碼:用for循環遍歷reader對象的每一行。打印row,就能讀取出“demo.csv”文件里的內容。
補充一點:csv模塊本身還有很多函數和方法,附上csv模塊官方文檔鏈接:
https://yiyibooks.cn/xx/python_352/library/csv.html#module-csv

Excel寫入與讀取

一個Excel文檔也稱為一個工作薄(workbook),每個工作薄里可以有多個工作表(wordsheet),當前打開的工作表又叫活動表。
每個工作表里有行和列,特定的行與列相交的方格稱為單元格(cell)。比如上圖第A列和第1行相交的方格我們可以直接表示為A1單元格。

            
              mport openpyxl 
#引用openpyxl 。
wb = openpyxl.Workbook()
#利用openpyxl.Workbook()函數創建新的workbook(工作薄)對象,就是創建新的空的Excel文件。

            
          

創建完新的工作薄后,還得獲取工作表。不然程序會懵逼,不知道要把內容寫入哪張工作表里。

            
              sheet = wb.active
#wb.active就是獲取這個工作薄的活動表,通常就是第一個工作表。
sheet.title = 'new title'
#可以用.title給工作表重命名。現在第一個工作表的名稱就會由原來默認的“sheet1”改為"new title"。

            
          

添加完工作表,我們就能來操作單元格,往單元格里寫入內容。

            
              sheet['A1'] = '漫威宇宙' 
#把'漫威宇宙'賦值給第一個工作表的A1單元格,就是往A1的單元格中寫入了'漫威宇宙'。

            
          

如果我們想往工作表里寫入一行內容的話,就得用到append函數。

            
              row = ['美國隊長','鋼鐵俠','蜘蛛俠']
#把我們想寫入的一行內容寫成列表,賦值給row。
sheet.append(row)
#用sheet.append()就能往表格里添加這一行文字。

            
          

如果我們想要一次性寫入的不止一行,而是多行內容,又該怎么辦?

            
              rows = [['美國隊長','鋼鐵俠','蜘蛛俠'],['是','漫威','宇宙', '經典','人物']]
#先把要寫入的多行內容寫成列表,再放進大列表里,賦值給rows。
for i in rows:
    sheet.append(i)
#遍歷rows,同時把遍歷的內容添加到表格里,這樣就實現了多行寫入。
print(rows)
#打印rows

            
          

成功寫入后,我們千萬要記得保存這個Excel文件,不然就白寫啦!

            
              wb.save('Marvel.xlsx')
#保存新建的Excel文件,并命名為“Marvel.xlsx”

            
          

這樣,Excel文件寫入的代碼我們就寫好了

            
              import openpyxl

wb=openpyxl.Workbook()
sheet=wb.active
sheet.title='new title'
sheet['A1']='漫威宇宙'
rows=[['美國隊長','鋼鐵俠','蜘蛛俠'],['是','漫威','宇宙','經典','的','人物']]
for i in rows:
        sheet.append(i)
print(rows)
wb.save('Marvel.xlsx')


            
          

Excel文件的讀取

            
              import openpyxl 
#寫入的代碼:
wb = openpyxl.Workbook() 
sheet = wb.active
sheet.title = 'new title'
sheet['A1'] = '漫威宇宙'
rows = [['美國隊長','鋼鐵俠','蜘蛛俠','雷神'],['是','漫威','宇宙', '經典','人物']]
for i in rows:
    sheet.append(i)
print(rows)
wb.save('Marvel.xlsx')

#讀取的代碼:
wb = openpyxl.load_workbook('Marvel.xlsx')
sheet = wb['new title']
sheetname = wb.sheetnames
print(sheetname)
A1_cell = sheet['A1']
A1_value = A1_cell.value
print(A1_value)


            
          

第14行代碼:調用openpyxl.load_workbook()函數,打開“Marvel.xlsx”文件。
第15行代碼:獲取“Marvel.xlsx”工作薄中名為“new title”的工作表。
第16、17行代碼:sheetnames是用來獲取工作薄所有工作表的名字的。如果你不知道工作薄到底有幾個工作表,就可以把工作表的名字都打印出來。
第18-20行代碼:把“new title”工作表中A1單元格賦值給A1_cell,再利用單元格value屬性,就能打印出A1單元格的值。
openpyxl模塊的官方文檔:
https://openpyxl.readthedocs.io/en/stable/

python爬蟲第6關csv&excel_第5張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲午夜精品一区二区蜜桃 | 国模沟沟一区二区三区 | 天天做天天添婷婷我也去 | 欧美一级片免费看 | 国产精品成人不卡在线观看 | 久久久久久久成人 | 欧美一级做a爰片久毛片潮 日本久久视频 | 欧美日韩综合一区 | 天天操天天操天天操 | 久久久久久久免费视频 | 亚洲婷婷国产精品电影人久久 | 青娱乐在线免费观看视频 | 中文字幕免费在线观看动作大片 | 欧美日韩无线码免费播放 | 亚洲美女天堂网 | 网站在线观看 | 91tv在线观看| 国产精品久久久久影院色老大 | 欧美中文字幕一区二区 | 久久久久毛片免费观看 | 亚洲 欧美 另类 综合 偷拍 | 在线日韩精品视频 | 天天色av| 无码乱人伦一区二区亚洲 | 亚洲精品一区在线 | 羞羞视频在线免费 | 欧美大黄视频 | 国产1页| 92午夜影院 | 久久免费视频一区二区三区 | xxx视频 | 在线高清中文字幕 | 黄网站视频在线观看 | 五月综合激情婷婷六月色窝 | 欧美综合伊人久久 | 亚洲 久久 | 日产精品卡二卡三卡四卡乱码视频 | 亚洲欧美日韩中文字幕在线一区 | 久久久久久久国产精品 | 日本九九视频 | 婷五月综合 |