python3大文件解壓和基本操作
先說(shuō)下:所謂的大文件并不是壓縮文件有多大,幾十兆的文件而是解壓后幾百兆。其中就遇到解壓不成功的情況.、讀小文件時(shí)成功,大文件時(shí)失敗等
def unzip_to_txt_plus(zipfilename): zfile = zipfile.ZipFile(zipfilename, 'r') for filename in zfile.namelist(): data = zfile.read(filename) # data = data.decode('gbk').encode('utf-8') data = data.decode('gbk', 'ignore').encode('utf-8') file = open(filename, 'w+b') file.write(data) file.close() if __name__ == '__main__': zipfilename = "E:\\share\\python_excel\\zip_to_database\\20171025.zip" unzip_to_txt_plus(zipfilename)
注意參數(shù):‘ignore' ,因?yàn)槟J(rèn)是嚴(yán)格編碼,如果不加這個(gè)參數(shù)就會(huì)報(bào)錯(cuò)。
因?yàn)樵摵瘮?shù)已經(jīng)把文件編成utf-8 所以后面讀取文件時(shí)成功,下面貼出讀取大文件代碼(忽略數(shù)據(jù)庫(kù)相關(guān))
# - coding: utf-8 - import csv import linecache import xlrd import MySQLdb def txt_todatabase(filename, linenum): # with open(filename, "r", encoding="gbk") as csvfile: # Read = csv.reader(csvfile) # count =0 # for i in Read: # # print(i) # count += 1 # # print('hello') # print(count) count = linecache.getline(filename, linenum) print(count) # with open("new20171028.csv", "w", newline="") as datacsv: # # dialect為打開(kāi)csv文件的方式,默認(rèn)是excel,delimiter="\t"參數(shù)指寫(xiě)入的時(shí)候的分隔符 # csvwriter = csv.writer(datacsv, dialect=("excel")) # # csv文件插入一行數(shù)據(jù),把下面列表中的每一項(xiàng)放入一個(gè)單元格(可以用循環(huán)插入多行) # csvwriter.writerow(["A", "B", "C", "D"]) def bigtxt_read(filename): with open(filename, 'r', encoding='utf-8') as data: count =0 while 1: count += 1 line = data.readline() if 1000000 == count: print(line) if not line: break print(count) if __name__ == '__main__': filename = '20171025.txt' txt_todatabase(filename, 1000000) bigtxt_read(filename)
經(jīng)過(guò)對(duì)比,發(fā)現(xiàn)兩個(gè)速度基本一樣快。兩百萬(wàn)行的數(shù)據(jù)是沒(méi)壓力的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pandas按若干個(gè)列的組合條件篩選數(shù)據(jù)的方法
下面小編就為大家分享一篇pandas按若干個(gè)列的組合條件篩選數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python matplotlib超詳細(xì)教程實(shí)現(xiàn)圖形繪制
matplotlib 模塊不僅提供了繪制統(tǒng)計(jì)圖表的功能,還支持繪制圓形、正方形、矩形等各種圖形。這篇文章主要為大家詳細(xì)介紹了利用matplotlib.patches 繪制一些基本圖形,快來(lái)跟隨小編一起學(xué)習(xí)吧2021-12-12python 在threading中如何處理主進(jìn)程和子線程的關(guān)系
這篇文章主要介紹了python 在threading中如何處理主進(jìn)程和子線程的關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04使用APScheduler3.0.1 實(shí)現(xiàn)定時(shí)任務(wù)的方法
今天小編就為大家分享一篇使用APScheduler3.0.1 實(shí)現(xiàn)定時(shí)任務(wù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python3之外部文件調(diào)用Django程序操作model等文件實(shí)現(xiàn)方式
這篇文章主要介紹了Python3之外部文件調(diào)用Django程序操作model等文件實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04ChatGPT 幫我自動(dòng)編寫(xiě) Python 爬蟲(chóng)腳本的詳細(xì)過(guò)程
ChatGPT是一種基于大語(yǔ)言模型的生成式AI,換句話說(shuō)它可以自動(dòng)生成類(lèi)似人類(lèi)語(yǔ)言的文本,把梳理好的有邏輯的答案呈現(xiàn)在你面前,這完全不同于傳統(tǒng)搜索工具,這篇文章主要介紹了ChatGPT 幫我自動(dòng)編寫(xiě) Python 爬蟲(chóng)腳本,需要的朋友可以參考下2023-02-02