python3大文件解壓和基本操作
先說下:所謂的大文件并不是壓縮文件有多大,幾十兆的文件而是解壓后幾百兆。其中就遇到解壓不成功的情況.、讀小文件時成功,大文件時失敗等
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' ,因為默認是嚴格編碼,如果不加這個參數(shù)就會報錯。
因為該函數(shù)已經(jīng)把文件編成utf-8 所以后面讀取文件時成功,下面貼出讀取大文件代碼(忽略數(shù)據(jù)庫相關(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為打開csv文件的方式,默認是excel,delimiter="\t"參數(shù)指寫入的時候的分隔符 # csvwriter = csv.writer(datacsv, dialect=("excel")) # # csv文件插入一行數(shù)據(jù),把下面列表中的每一項放入一個單元格(可以用循環(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)過對比,發(fā)現(xiàn)兩個速度基本一樣快。兩百萬行的數(shù)據(jù)是沒壓力的。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pandas按若干個列的組合條件篩選數(shù)據(jù)的方法
下面小編就為大家分享一篇pandas按若干個列的組合條件篩選數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python matplotlib超詳細教程實現(xiàn)圖形繪制
matplotlib 模塊不僅提供了繪制統(tǒng)計圖表的功能,還支持繪制圓形、正方形、矩形等各種圖形。這篇文章主要為大家詳細介紹了利用matplotlib.patches 繪制一些基本圖形,快來跟隨小編一起學(xué)習(xí)吧2021-12-12python 在threading中如何處理主進程和子線程的關(guān)系
這篇文章主要介紹了python 在threading中如何處理主進程和子線程的關(guān)系,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04使用APScheduler3.0.1 實現(xiàn)定時任務(wù)的方法
今天小編就為大家分享一篇使用APScheduler3.0.1 實現(xiàn)定時任務(wù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python3之外部文件調(diào)用Django程序操作model等文件實現(xiàn)方式
這篇文章主要介紹了Python3之外部文件調(diào)用Django程序操作model等文件實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04ChatGPT 幫我自動編寫 Python 爬蟲腳本的詳細過程
ChatGPT是一種基于大語言模型的生成式AI,換句話說它可以自動生成類似人類語言的文本,把梳理好的有邏輯的答案呈現(xiàn)在你面前,這完全不同于傳統(tǒng)搜索工具,這篇文章主要介紹了ChatGPT 幫我自動編寫 Python 爬蟲腳本,需要的朋友可以參考下2023-02-02