999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的SQLite數(shù)據(jù)庫存儲(chǔ)

2020-11-20 02:05:55張小鳳高正明
裝備維修技術(shù) 2020年5期
關(guān)鍵詞:數(shù)據(jù)存儲(chǔ)

張小鳳 高正明

摘要:本文主要論述了基于python的SQLite數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)原理、過程和用途。具體以SQLite3為例,將文本數(shù)據(jù)存儲(chǔ)的過程進(jìn)行了闡述和說明。

關(guān)鍵詞:反應(yīng)截面、Python、數(shù)據(jù)存儲(chǔ)、SQLite

引言:

在科研學(xué)習(xí)過程中,為了防止數(shù)據(jù)被反復(fù)抓取,我們通常需要運(yùn)用Python代碼從網(wǎng)站上爬取相關(guān)數(shù)據(jù),則需要將數(shù)據(jù)保存到本地,其中最常用的方式就是將數(shù)據(jù)按照設(shè)計(jì)的數(shù)據(jù)格式保存到指定的文件中,其中常用的數(shù)據(jù)類型為文本文檔txt、表格類文件csv、 excel 等。此外,還可以將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(例如SQLite3、MySQL等)中,以便能夠便捷讀取及管理數(shù)據(jù)。

SQLite相比于其他數(shù)據(jù)庫,其不需要單獨(dú)的進(jìn)行安裝或者管理服務(wù),即不需要配置,只需要程序調(diào)用即可,不要求為該數(shù)據(jù)庫生成一個(gè)單獨(dú)的服務(wù)器進(jìn)程且不需要為其單獨(dú)配置可操作的系統(tǒng),及不需要配置服務(wù)器;其次,SQLite數(shù)據(jù)庫的存儲(chǔ)文件相比于其他存儲(chǔ)文件,其占用磁盤的空間很小,屬于輕量級的文件,且可以在多個(gè)跨平臺(tái)的系統(tǒng)中進(jìn)行使用和處理,即該文件不依賴多余的硬件或者軟件配置,就可以實(shí)現(xiàn)自給自足;另外,對于ACID,SQLite數(shù)據(jù)庫的訪問和設(shè)置均是完全兼容的,即對于同一個(gè)SQLite數(shù)據(jù)庫文件而言,它容許多個(gè)程序或者程序進(jìn)程、線程進(jìn)行安全管理訪問;除此之外,SQLite采用的是 ANSI-C 進(jìn)行編輯的,同時(shí)為了能夠更方便于用戶操作,它提供了簡潔明了的API,同時(shí)為了方便用戶查詢數(shù)據(jù)庫的信息,SQL92(SQL2)標(biāo)準(zhǔn)中大部分的查詢功能均被支持使用。

因?yàn)镻ython 2.5x及以上的版本均內(nèi)置了SQLite3數(shù)據(jù)庫引擎,因此直接輸入命令“import sqlite3”即可使用。鑒于SQLite3和Python相結(jié)合的優(yōu)點(diǎn),本文主要闡述如何利用Python將文本數(shù)據(jù)錄入SQLite3數(shù)據(jù)庫。

1、python的操作步驟

① 首先創(chuàng)建一個(gè)與數(shù)據(jù)庫文件的連接對象connection,即利用sqlite3.open(),函數(shù);

② 其次創(chuàng)建光標(biāo)對象cursor,即利用connection.cursor()函數(shù);

③ 然后使SQL語句將會(huì)被執(zhí)行,利用cursor.execute()函數(shù);

④ 再利用connection.commit()函數(shù)提交當(dāng)前事務(wù),或利用cursor.fetchall(),獲得查詢結(jié)果;

⑤ 最后將與數(shù)據(jù)庫文件的連接關(guān)閉,即利用connection.close()。

2、具體步驟

2.1、逐行讀取指定路徑下文件的文件內(nèi)容

通過采用with語句和open語句的結(jié)合,可以安全地實(shí)現(xiàn)對文件的打開操作,并利用readlines()函數(shù)以便對文件的每行內(nèi)容進(jìn)行快速便捷讀取,即對all的數(shù)據(jù)進(jìn)行拆分。

with open("eedl.all") as f:

text = f.readlines()

2.2、對數(shù)據(jù)進(jìn)行解析,判斷當(dāng)前行是不是目標(biāo)數(shù)據(jù)行

文件包含說明信息和反應(yīng)截面數(shù)據(jù),如下圖2-1 钚元素與光子的相互作用截面數(shù)據(jù)庫(摘錄)所示,它包含的是說明、解釋型信息。第一列為MF號,第二列為MT號,第三列為該MT號下的截面數(shù)據(jù)占多少行。

其中,其對應(yīng)的反應(yīng)截面數(shù)據(jù)如下圖2-2 钚元素與光子相互作用截面數(shù)據(jù)庫所示,從左至右第1、3、5列為能量點(diǎn),即下圖中方框所示,第2、4、6列分別為1、3、5列的能量點(diǎn)對應(yīng)的截面數(shù)據(jù),即下圖中橢圓所示。

通過分析數(shù)據(jù)的存儲(chǔ)格式和目標(biāo)數(shù)據(jù)與非目標(biāo)數(shù)據(jù)的差異,發(fā)現(xiàn)目標(biāo)數(shù)據(jù)在去除符號后,均為數(shù)字格式,所以首先對當(dāng)前行數(shù)據(jù)進(jìn)行預(yù)處理:去除當(dāng)前行字符串中的符號元素。然后嘗試將字符串格式轉(zhuǎn)換為float數(shù)據(jù)類型,當(dāng)轉(zhuǎn)換失敗,觸發(fā)異常,則說明當(dāng)前行數(shù)據(jù)不是目標(biāo)數(shù)據(jù),則繼續(xù)遍歷處理下一行,如圖2-3所示。

2.3、目標(biāo)數(shù)據(jù)行數(shù)據(jù)解析

解析MAT、MF、MT數(shù)據(jù):MF號和MT號組合是倒數(shù)第二列,MAT號是倒數(shù)第三列,并且 MT就是3位,但是也可能會(huì)出現(xiàn)MAT號與MF和MT號粘連且與第六列的數(shù)據(jù)也粘連(如圖2-4所示)或者僅MAT號與MF和MT號粘連(如圖2-5所示)的現(xiàn)象。當(dāng)MAT號與MF和MT號粘連且與第六列的數(shù)據(jù)也粘連時(shí),共占字符大于9,其中MT號占最后三個(gè)字符,MF號占倒數(shù)第五至第三的字符,MAT占倒數(shù)第九至第五的字符;當(dāng)僅MAT號與MF和MT號粘連時(shí),第二列為MF和MT號共占字符數(shù)大于等于5,其中MT號占最后三個(gè)字符,MF號占倒數(shù)5至3位的字符,MAT號占倒數(shù)0至5位;當(dāng)MAT號與MF和MT號不粘連時(shí)(如圖2-6所示),MAT為倒數(shù)第三列,MF和MT為倒數(shù)第二列,其中MT占后面三位,MF占前面兩位。因此,目標(biāo)數(shù)據(jù)行數(shù)據(jù)解析如圖2-7所示。

因?yàn)槲覀兯枰臄?shù)據(jù)只有文件中每一行的前六個(gè)數(shù)據(jù),后面的數(shù)據(jù)為說明語句,因此對前六個(gè)數(shù)據(jù)進(jìn)行拆分。由于第六列數(shù)據(jù)可能會(huì)出現(xiàn)與第七列說明語句粘連的現(xiàn)象,所以,按照“ ”進(jìn)行分割后,對于前5個(gè)數(shù)據(jù),直接判斷為需要的數(shù)據(jù),對于第6個(gè)數(shù)據(jù),當(dāng)其長度小于等于10,直接判斷為需要的數(shù)據(jù)。當(dāng)其第一位為“-”,且長度為11,直接判斷為需要的數(shù)據(jù)。當(dāng)?shù)谝晃粸椤?”且長度大于11,則在第11位處進(jìn)行分割。當(dāng)?shù)谝晃徊皇恰?”,且位數(shù)大于10,則再第10位進(jìn)行分割。

一行六個(gè)數(shù)據(jù),分為三組(能量點(diǎn)--對應(yīng)截面),存儲(chǔ)時(shí)是將能量點(diǎn)與對應(yīng)的截面同時(shí)存放,每一行三組數(shù)據(jù),即存放三次。因?yàn)槟芰繛?的粒子是不存在的,所以應(yīng)該舍去能量點(diǎn)為0的對應(yīng)數(shù)據(jù),即去除異常元素。

在存放時(shí),需要判斷“energy”是否為0,當(dāng)“energy”不為零時(shí),則將“energy”和對應(yīng)的截面數(shù)據(jù)存放在數(shù)據(jù)庫。

2.4、數(shù)據(jù)入庫

為了保證數(shù)據(jù)元素的純凈,首先需要檢測將要被創(chuàng)建的數(shù)據(jù)庫文件是否已經(jīng)存在,如果不存在,則創(chuàng)建數(shù)據(jù)庫文件,如果存在,則刪除原來的數(shù)據(jù)庫文件。

在創(chuàng)建數(shù)據(jù)庫后,數(shù)據(jù)庫需要初始化:即創(chuàng)建表,如圖2-8所示。

當(dāng)對數(shù)據(jù)庫的表創(chuàng)建完畢后,即實(shí)現(xiàn)了創(chuàng)建相應(yīng)數(shù)據(jù)庫的操作,此時(shí)當(dāng)前目錄下可以找到對應(yīng)的數(shù)據(jù)庫文件,然后插入數(shù)據(jù)。

2.5、數(shù)據(jù)處理

在將數(shù)據(jù)轉(zhuǎn)變成string變量時(shí),數(shù)據(jù)末尾可能會(huì)出現(xiàn)多個(gè)0,為了數(shù)據(jù)的直觀和美觀,將末尾多余的0去除。在數(shù)據(jù)轉(zhuǎn)成string變量后,查找nRet中的“.”位置,然后記錄nRet的長度。然后判斷數(shù)據(jù)是否為小數(shù),nPosPoint=1則說明nRet中沒有“.”,可以直接存儲(chǔ);nPosNotZero>1則說明nRet中有“.”,可能需要尾綴去零處理。

利用倒敘循環(huán)遍歷nRet中小數(shù)點(diǎn)后從左至右連續(xù)的零的情況,即從右至左到小數(shù)點(diǎn)后一位依次判斷該位是否為零。參考代碼如下:

for i in range(nLen-1, nPosPoint-1, -1):

if nRet[i] != "0":

nPosNotZero = i

Break

2.6、查詢和確認(rèn)數(shù)據(jù)

最后可以導(dǎo)入sqlite3模塊,然后連接數(shù)據(jù)庫利用sql語句查詢和確認(rèn)數(shù)據(jù)入庫的情況。

3、結(jié)束語

本文的數(shù)據(jù)存儲(chǔ)過程適用于文本數(shù)據(jù)的存儲(chǔ),以實(shí)現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)的冗余度、同時(shí)保持?jǐn)?shù)據(jù)的獨(dú)立性、實(shí)現(xiàn)數(shù)據(jù)集中控制,并確保數(shù)據(jù)的一致性和可維護(hù)性。

【參考文獻(xiàn)】:

[1]Python操作SQLite數(shù)據(jù)庫[J].朱純陽.計(jì)算機(jī)軟件與計(jì)算機(jī)應(yīng)用.2015(15)

[2]淺談SQLite數(shù)據(jù)庫技術(shù)在Android平臺(tái)的應(yīng)用,[J].唐磊.計(jì)算機(jī)軟件與計(jì)算機(jī)應(yīng)用.2014(09)

猜你喜歡
數(shù)據(jù)存儲(chǔ)
大數(shù)據(jù)時(shí)代檔案信息建設(shè)的認(rèn)識(shí)和實(shí)踐
淺談電力大數(shù)據(jù)平臺(tái)關(guān)鍵技術(shù)研究與應(yīng)用
開源數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)路徑分析
基于Android開發(fā)的APP數(shù)據(jù)存儲(chǔ)研究
哈希算法在物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)中的應(yīng)用
大型在線式UPS及監(jiān)控系統(tǒng)在中控機(jī)房的應(yīng)用
科技視界(2016年4期)2016-02-22 13:10:37
主站蜘蛛池模板: 久久鸭综合久久国产| 四虎成人精品| 一本一本大道香蕉久在线播放| 乱人伦视频中文字幕在线| 伊人天堂网| 精品久久久无码专区中文字幕| 免费看美女自慰的网站| 在线免费观看AV| 国产精品免费久久久久影院无码| 亚洲黄色网站视频| 视频国产精品丝袜第一页| 欧美狠狠干| 中国国语毛片免费观看视频| 国产女人水多毛片18| 欧美成人午夜影院| 国产手机在线观看| 午夜欧美在线| 中文字幕欧美日韩高清| 国产精品香蕉在线观看不卡| 米奇精品一区二区三区| 在线观看免费国产| 国产区精品高清在线观看| 免费中文字幕在在线不卡| 国产成人禁片在线观看| 亚洲开心婷婷中文字幕| 久久久无码人妻精品无码| 久久人搡人人玩人妻精品一| 国产乱视频网站| 国产大片喷水在线在线视频| 国产色婷婷| 91精品国产自产在线老师啪l| 亚洲午夜综合网| 国产成+人+综合+亚洲欧美| 五月丁香在线视频| 丝袜高跟美脚国产1区| 久久久波多野结衣av一区二区| 亚洲无码高清视频在线观看| 国产自无码视频在线观看| 国产精品成人一区二区不卡 | 毛片手机在线看| 91黄色在线观看| 在线视频亚洲色图| 又爽又大又黄a级毛片在线视频| jizz在线免费播放| 久草视频一区| 国产亚洲欧美日韩在线一区| 亚洲美女一区二区三区| 亚洲国产理论片在线播放| 蜜桃视频一区二区三区| 人妻精品全国免费视频| 91九色国产在线| 日本成人精品视频| 久久久91人妻无码精品蜜桃HD| 日本黄网在线观看| 亚洲国产成人麻豆精品| 91青青在线视频| 亚洲精品片911| 9啪在线视频| 欧美日本二区| 中国成人在线视频| 国内精品免费| 青青草久久伊人| 99国产在线视频| 亚洲无码高清视频在线观看| 波多野结衣一区二区三区四区| 国产女人综合久久精品视| 欧美性爱精品一区二区三区| 国产微拍精品| 日韩a级片视频| 久久精品人人做人人爽97| 亚洲一区二区三区在线视频| 爆操波多野结衣| 国产视频欧美| 夜夜操国产| 中文字幕亚洲无线码一区女同| 日本免费a视频| 国产swag在线观看| 区国产精品搜索视频| 日本一区高清| 99视频在线免费观看| 黄色网站在线观看无码| 亚洲第一成年网|