国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

視頻音樂(lè)網(wǎng)站怎樣建設(shè)濰坊seo培訓(xùn)

視頻音樂(lè)網(wǎng)站怎樣建設(shè),濰坊seo培訓(xùn),電子商務(wù)網(wǎng)站建設(shè),建設(shè)有限公司官網(wǎng)大數(shù)據(jù)時(shí)代,各行各業(yè)對(duì)數(shù)據(jù)采集的需求日益增多,網(wǎng)絡(luò)爬蟲(chóng)的運(yùn)用也更為廣泛,越來(lái)越多的人開(kāi)始學(xué)習(xí)網(wǎng)絡(luò)爬蟲(chóng)這項(xiàng)技術(shù),K哥爬蟲(chóng)此前已經(jīng)推出不少爬蟲(chóng)進(jìn)階、逆向相關(guān)文章,為實(shí)現(xiàn)從易到難全方位覆蓋,特設(shè)【0基礎(chǔ)學(xué)…

0

大數(shù)據(jù)時(shí)代,各行各業(yè)對(duì)數(shù)據(jù)采集的需求日益增多,網(wǎng)絡(luò)爬蟲(chóng)的運(yùn)用也更為廣泛,越來(lái)越多的人開(kāi)始學(xué)習(xí)網(wǎng)絡(luò)爬蟲(chóng)這項(xiàng)技術(shù),K哥爬蟲(chóng)此前已經(jīng)推出不少爬蟲(chóng)進(jìn)階、逆向相關(guān)文章,為實(shí)現(xiàn)從易到難全方位覆蓋,特設(shè)【0基礎(chǔ)學(xué)爬蟲(chóng)】專(zhuān)欄,幫助小白快速入門(mén)爬蟲(chóng),本期為文件存儲(chǔ)。

概述

前幾期文章中我們已經(jīng)了解到了請(qǐng)求庫(kù)、解析庫(kù)的使用,已經(jīng)學(xué)會(huì)了如何向目標(biāo)網(wǎng)站發(fā)送請(qǐng)求以及解析響應(yīng)信息,那么我們還需要知道如何將數(shù)據(jù)進(jìn)行存儲(chǔ)。數(shù)據(jù)存儲(chǔ)有很多方式,本期會(huì)介紹如何將數(shù)據(jù)存入文本文件,如 TXT、JSON、CSV 等。

TXT 文件存儲(chǔ)

介紹

TXT文件存儲(chǔ)是最基本的數(shù)據(jù)存儲(chǔ)方式,TXT 文本文件基本上兼容任何平臺(tái),因此它的應(yīng)用也非常廣泛。使用代碼操作 TXT 文件十分簡(jiǎn)單,但是缺點(diǎn)也非常明顯,不利于對(duì)數(shù)據(jù)進(jìn)行檢索。

使用

Python 中操作 TXT 文件需要使用到內(nèi)置的 open() 函數(shù)。

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

open() 函數(shù)有七個(gè)參數(shù)分別為:

file:文件路徑

mode:打開(kāi)方式,默認(rèn)為(r)只讀模式

buffering:文件緩沖

encoding:字符編碼

errors:報(bào)錯(cuò)級(jí)別

newline:換行模式,默認(rèn)以\n換行

closefd:控制在關(guān)閉文件時(shí)是否徹底關(guān)閉文件

文件打開(kāi)方式分為以下幾種:

r:以只讀方式打開(kāi)文件

w:以寫(xiě)入方式打開(kāi)文件。如果文件存在則覆蓋原文件,不存在則新建。

x:創(chuàng)建新文件并以寫(xiě)入方式打開(kāi)文件

a:以追加方式打開(kāi)文件。如果文件存在,則在結(jié)尾位置寫(xiě)入,不存在則新建。

b:二進(jìn)制模式

t:文本模式

+:讀取與寫(xiě)入

wb:以二進(jìn)制寫(xiě)入方式打開(kāi)文件。如果文件存在則覆蓋原文件,不存在則新建。

w+:以讀寫(xiě)方式打開(kāi)文件。如果文件存在則覆蓋原文件,不存在則新建。

wb+:以二進(jìn)制讀寫(xiě)方式打開(kāi)文件。如果文件存在則覆蓋原文件,不存在則新建。

ab:以二進(jìn)制追加方式打開(kāi)文件。如果文件存在,則在結(jié)尾位置寫(xiě)入,不存在則新建。

ab+:以二進(jìn)制追加讀寫(xiě)方式打開(kāi)文件。如果文件存在,則在結(jié)尾位置寫(xiě)入,不存在則新建。

f = open('data.txt','r',encoding="utf-8")
f.seek(2) #從指定下標(biāo)位置開(kāi)始讀取
data = f.read()
f.close()
f = open('data.txt','w',encoding="utf-8")
f.write('hello')
f.write(' ')
f.write('world')
f.close()
#hello world

上下文管理器

上文中可以看到,對(duì)一個(gè)文件進(jìn)行讀寫(xiě)操作后需要使用 close() 方法關(guān)閉文件。如果不使用 close() 關(guān)閉文件會(huì)導(dǎo)致資源泄露問(wèn)題。為了避免這個(gè)問(wèn)題和優(yōu)化代碼,我們可以使用上下文管理器來(lái)操作文件。

with open('data.txt','w',encoding='uutf-8')as f:f.write('hello')f.write(' ')f.write('world')

當(dāng) with 語(yǔ)句塊結(jié)束后文件會(huì)自動(dòng)關(guān)閉,這樣不需要再調(diào)用 close() 方法。

JSON 文件存儲(chǔ)

介紹

JSON 全稱(chēng)為 JavaScript Object Notation,也就是 JavaScript 對(duì)象標(biāo)記,是一種輕量級(jí)的數(shù)據(jù)交換格式。人們可以很容易的對(duì) JSON 格式的數(shù)據(jù)進(jìn)行閱讀和編寫(xiě),同時(shí)也方便了機(jī)器進(jìn)行解析和生成。JSON 采用完全獨(dú)立于程序語(yǔ)言的文本格式,但是也使用了類(lèi) C 語(yǔ)言的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。

JSON 通過(guò)對(duì)象和數(shù)組的組合來(lái)表示數(shù)據(jù),而在 JavaScript 中,一切皆為對(duì)象,因此任何數(shù)據(jù)類(lèi)型都可以通過(guò) JSON 來(lái)表示。

在 JavaScript 中 JSON 通常以對(duì)象或數(shù)組的形式存在。對(duì)象形式為被花括號(hào)包裹的鍵值對(duì)結(jié)構(gòu),如 { key1 : value1, key2 : value2 },key表示對(duì)象的屬性,value表示對(duì)象的值。數(shù)組形式與對(duì)象形式的區(qū)別就在于它是被方括號(hào)所包裹,如[{ key1 : value1}, {key2 : value2}]。對(duì)象形式與數(shù)組形式可以自由組合,任意嵌套。JSON中字符串類(lèi)型的數(shù)據(jù)需要以雙引號(hào)包圍。

JSON 的這種結(jié)構(gòu)非常簡(jiǎn)潔清晰,且結(jié)構(gòu)化程度很高,因而被廣泛使用。

使用

JSON 是一個(gè)數(shù)據(jù)格式,本質(zhì)上是純字符串類(lèi)型,在 Python 中它可以被轉(zhuǎn)換為對(duì)應(yīng)的數(shù)據(jù)類(lèi)型,如對(duì)象形式可以被轉(zhuǎn)換為字典,數(shù)組類(lèi)型可以轉(zhuǎn)換為列表。Python 中內(nèi)置了一個(gè)強(qiáng)大的 JSON 庫(kù),通過(guò)它可以簡(jiǎn)便的實(shí)現(xiàn) JSON 文件的讀寫(xiě)操作。

JSON 庫(kù)提高了四個(gè)方法:

json.dump():將 JSON 對(duì)象寫(xiě)入文件

json.dumps():將Python對(duì)象編碼成 JSON 字符串

json.load():從 JSON 文件中讀取數(shù)據(jù)

json.loads():將已編碼的 JSON 字符串解碼為Python對(duì)象

下面我們以這段數(shù)據(jù)作為示例:

{"1001": {"name": "張三","age": 21,"gender": "female"},"1002": {"name": "李四","age": 22,"gender": "male"}
}

讀取數(shù)據(jù)

data.json 文件內(nèi)容為示例 JSON 數(shù)據(jù)。

with open('data.json','r',encoding='utf-8')as f:data = f.read()print(type(data))
#輸出:<class 'str'>

可以看到,我們直接從 JSON 文件里面讀取的數(shù)據(jù)是字符串類(lèi)型,這不利于我們對(duì)它進(jìn)行操作,我們可以使用 json.loads() 方法將 JSON 字符串轉(zhuǎn)換為字典類(lèi)型。

import jsonwith open('data.json','r',encoding='utf-8')as f:data = f.read()print(type(data))
data = json.loads(data)
print(type(data))
#輸出:
#<class 'str'>
#<class 'dict'>

我們也可以使用更加簡(jiǎn)潔的寫(xiě)法,通過(guò) json.load() ,直接對(duì)文件操作對(duì)象進(jìn)行解析。

import jsondata = json.load(open('data.json',encoding='utf-8'))print(type(data))
#輸出:<class 'dict'>

寫(xiě)入數(shù)據(jù)

使用 write() 方法寫(xiě)入文件時(shí),它只能傳入字符串類(lèi)型的數(shù)據(jù)。因此我們需要將字典數(shù)據(jù)先轉(zhuǎn)換為 JSON 字符串,可以通過(guò) json.dumps() 方法實(shí)現(xiàn)。

import jsondata = {"1001": {"name": "張三","age": 21,"gender": "female"},"1002": {"name": "李四","age": 22,"gender": "male"}
}print(data)
data = json.dumps(data)
print(type(data))
with open('data.json','w',encoding="utf-8")as f:f.write(data)
#輸出:
#<class 'dict'>
#<class 'str'>

當(dāng)然,將數(shù)據(jù)寫(xiě)入文件也有更加簡(jiǎn)便的方法。

import jsondata = {"1001": {"name": "張三","age": 21,"gender": "female"},"1002": {"name": "李四","age": 22,"gender": "male"}
}json.dump(data,open('data.json','w',encoding='utf-8'),indent=2,ensure_ascii=False)

CSV 文件存儲(chǔ)

介紹

CSV 全稱(chēng) Comma-Sparated Values(逗號(hào)分隔值),它以純文本形式存儲(chǔ)數(shù)據(jù)表格。CSV 文件是一個(gè)字符序列,它由任意數(shù)目的記錄組成,記錄之間以某種換行符分隔。文件的每條記錄由字段和字段值組成,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符。CSV 并不是一種單一的、明確定義的文本格式,它泛指具備以下特征的任何文件:

  1. 純文本呢,使用某個(gè)字符集

  2. 由記錄組成

  3. 每條記錄被分隔符分隔為字段

  4. 每條記錄都有相同的字段序列

使用

Python 中提供了一個(gè)內(nèi)置的 csv 庫(kù)來(lái)對(duì) CSV 文件進(jìn)行操作。

寫(xiě)入

import csv#writerow默認(rèn)換行,因此需要通過(guò) newline 將換行符設(shè)置為空,避免重復(fù)換行
with open('data.csv','w',encoding='utf-8',newline="") as csvfile:#delimiter:指定分隔符,默認(rèn)為逗號(hào)writer = csv.writer(csvfile,delimiter = " ")#寫(xiě)入一行writer.writerow(['id', 'name', 'age'])writer.writerow(['1001', 'jack', 15])writer.writerow(['1002', 'marin', 22])writer.writerow(['1003', 'alex', 19])#寫(xiě)入多行writer.writerows([['1004', 'lucy', 23],['1005', 'john', 30]])

csv庫(kù)也提供了其它的寫(xiě)入方法

import csvwith open('data.csv','w',encoding='utf-8',newline="") as csvfile:#字典寫(xiě)入對(duì)象writer = csv.DictWriter(csvfile,fieldnames=['id','name','age'])writer.writeheader()writer.writerow({'id':'1001','name':'jack','age':21})writer.writerow({'id': '1002', 'name': 'marin', 'age': 22})writer.writerows([{'id': '1003', 'name': 'lucy', 'age': 23},{'id': '1004', 'name': 'mike', 'age': 22}])

讀取

import csvwith open('data.csv','r',encoding='utf-8')as csvfile:reader = csv.reader(csvfile)for row in reader:print(row)

總結(jié)

上文中講到了 TXT、JSON、CSV 三種文件的存儲(chǔ)方式,介紹了如何對(duì)這些文件進(jìn)行讀寫(xiě)操作。文本文件存儲(chǔ)的優(yōu)勢(shì)在于簡(jiǎn)單、方便,適合存儲(chǔ)少量信息,但想要規(guī)范的儲(chǔ)存數(shù)據(jù)的話并不推薦使用文本文件儲(chǔ)存。

http://m.aloenet.com.cn/news/41289.html

相關(guān)文章:

  • 徐州建站服務(wù)av手機(jī)在線精品
  • 上海專(zhuān)業(yè)網(wǎng)站建設(shè) 公司中國(guó)站免費(fèi)推廣入口
  • 教育部教育考試院網(wǎng)站網(wǎng)頁(yè)的優(yōu)化方法
  • 建設(shè)部繼續(xù)教育網(wǎng)站網(wǎng)站制作方案
  • 攜程旅行網(wǎng)站內(nèi)容的建設(shè)軟文發(fā)布軟件
  • 抖音app下載seo外包方法
  • 如何請(qǐng)人創(chuàng)建一個(gè)網(wǎng)站信息流廣告素材網(wǎng)站
  • 做淘寶需要的網(wǎng)站數(shù)字化營(yíng)銷(xiāo)
  • 直播app開(kāi)發(fā)一個(gè)需要多少錢(qián)整站優(yōu)化報(bào)價(jià)
  • 網(wǎng)頁(yè)制作要多少錢(qián)長(zhǎng)沙seo工作室
  • 網(wǎng)站外包合作網(wǎng)絡(luò)優(yōu)化報(bào)告
  • 鄭州做網(wǎng)站齒輪廣州網(wǎng)絡(luò)營(yíng)銷(xiāo)選擇
  • 餐飲公司網(wǎng)站建設(shè)策劃書(shū)網(wǎng)絡(luò)營(yíng)銷(xiāo)管理
  • 科汛kesioncms網(wǎng)站系統(tǒng)長(zhǎng)春百度網(wǎng)站優(yōu)化
  • 商融建設(shè)集團(tuán)有限公司網(wǎng)站廣州網(wǎng)站seo推廣
  • wordpress模版怎么上傳寧波關(guān)鍵詞優(yōu)化企業(yè)網(wǎng)站建設(shè)
  • 西安做網(wǎng)站公無(wú)憂seo博客
  • 做網(wǎng)站需要學(xué)習(xí)多久域名被墻查詢
  • 公司網(wǎng)站制作多少錢(qián)好用的磁力搜索引擎
  • 電影網(wǎng)頁(yè)制作素材刷關(guān)鍵詞排名seo軟件
  • 網(wǎng)費(fèi)一年多少錢(qián)優(yōu)化設(shè)計(jì)電子版在哪找
  • 南京做網(wǎng)站建設(shè)有哪些內(nèi)容做百度推廣多少錢(qián)
  • 東莞網(wǎng)站推廣公司建站abc官方網(wǎng)站
  • 上海網(wǎng)站設(shè)計(jì)銷(xiāo)售營(yíng)銷(xiāo)方案100例
  • 項(xiàng)目宣傳網(wǎng)站模板百度最新版本2022
  • 做wap網(wǎng)站能火嗎合肥網(wǎng)站
  • 網(wǎng)站維護(hù)一年多少費(fèi)收錄排名好的發(fā)帖網(wǎng)站
  • 網(wǎng)站地址欄圖標(biāo)制作企業(yè)高管培訓(xùn)課程有哪些
  • 做酒店管理網(wǎng)站的作用成都網(wǎng)絡(luò)推廣外包
  • wordpress 眾籌模板seo效果最好的是