欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)大文件分割與合并

 更新時間:2019年07月22日 10:22:15   作者:Byte貓  
這篇文章主要為大家詳細介紹了python實現(xiàn)大文件分割與合并,具有一定的參考價值,感興趣的小伙伴們可以參考一下

很多時候我們會面臨大文件無法加載到內存,或者要傳輸大文件的問題。這時候就需要考慮將大文件分割為小文件進行處理了。

下面是一種用python分割與合并分件的實現(xiàn)。

import os
FILE_DIR = os.path.dirname(os.path.abspath(__file__))

#========================================================
# 文件操作
#========================================================
def get_filelist1(dir, postfix):
  '''
  按照后綴返回文件名列表
  INPUT -> 目錄地址, 文件后綴
  OUTPUT -> 文件名列表
  '''
  return [os.path.join(dir, f) for f in os.listdir(dir) if f.endswith(postfix)]

def get_filelist2(dir, preffix):
  '''
  按照前綴返回文件名列表
  INPUT -> 目錄地址, 文件前綴
  OUTPUT -> 文件名列表
  '''
  return [os.path.join(dir, f) for f in os.listdir(dir) if f.startswith(preffix)]

def get_file_postfix(filename):
  '''
  獲取文件名后綴
  INPUT -> 文件名
  OUTPUT -> 文件后綴
  '''
  file = os.path.splitext(filename)
  preffix, postfix = file
  return postfix

def get_file_preffix(filename):
  '''
  獲取文件名前綴
  INPUT -> 文件名
  OUTPUT -> 文件前綴
  '''
  file = os.path.splitext(filename)
  preffix, postfix = file
  return preffix

def file_chunkspilt(path, filename, chunksize):
  '''
  文件按照數(shù)據(jù)塊大小分割為多個子文件
  INPUT -> 文件目錄, 文件名, 每個數(shù)據(jù)塊大小
  '''
  if chunksize > 0:
    filepath = path+'/'+filename
    partnum = 0
    inputfile = open(filepath, 'rb')
    while True:
      chunk = inputfile.read(chunksize)
      if not chunk:
        break
      partnum += 1
      newfilename = os.path.join(path, (filename+'_%04d' % partnum))
      sub_file = open(newfilename, 'wb')
      sub_file.write(chunk)
      sub_file.close()
    inputfile.close()
  else:
    print('chunksize must bigger than 0!')

def file_linespilt(path, filename, limit):
  '''
  文件按照行分割成多個子文件
  INPUT -> 文件目錄, 文件名, 行數(shù)
  '''
  if limit > 0:
    preffix = get_file_preffix(filename)
    postfix = get_file_postfix(filename)
    file_count = 0
    l_list = []
    with open(path+'/'+filename, 'rb') as f:
      for line in f:
        l_list.append(line)
        if len(l_list) < limit:
          continue
        subfile = preffix+"_"+str(file_count)+"."+postfix
        with open(FILE_DIR+'/'+subfile, 'wb') as file:
          for l in l_list[:-1]:
            file.write(l)
          file.write(l_list[-1].strip())
          l_list=[]
          file_count += 1
  else:
    print('limit must bigger than 0!')

def file_combine(path, filename):
  '''
  子文件合并
  INPUT -> 文件目錄, 文件名
  '''
  filepath = path+'/'+filename
  partnum = 0
  outputfile = open(filepath, 'wb')
  subfile_list = get_filelist2(FILE_DIR, filename+'_')
  for subfile in subfile_list:
    temp = open(subfile, 'rb')
    outputfile.write(temp.read())
    temp.close()
  outputfile.close()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 舉例講解Python中metaclass元類的創(chuàng)建與使用

    舉例講解Python中metaclass元類的創(chuàng)建與使用

    在Python中我們用type函數(shù)可以動態(tài)地創(chuàng)建一個元類,同樣也可以用__metaclass__屬性來指定一個元類,接下來我們就來具體舉例講解Python中metaclass元類的創(chuàng)建與使用
    2016-06-06
  • Caffe數(shù)據(jù)可視化環(huán)境python接口配置教程示例

    Caffe數(shù)據(jù)可視化環(huán)境python接口配置教程示例

    這篇文章主要為大家介紹了Caffe數(shù)據(jù)可視化環(huán)境python接口配置教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python使用MySQLdb for Python操作數(shù)據(jù)庫教程

    Python使用MySQLdb for Python操作數(shù)據(jù)庫教程

    這篇文章主要介紹了Python使用MySQLdb for Python操作數(shù)據(jù)庫教程,詳細講述了MySQLdb的用法,針對Python操作MySQL數(shù)據(jù)庫程序設計具有很好的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • 分析在Python中何種情況下需要使用斷言

    分析在Python中何種情況下需要使用斷言

    這篇文章主要介紹了分析在Python中何種情況下需要使用斷言,以避免在斷言使用中經(jīng)??赡芘龅降腻e誤,作者給出了具體代碼示例,需要的朋友可以參考下
    2015-04-04
  • 解決Tensorflow2.0 tf.keras.Model.load_weights() 報錯處理問題

    解決Tensorflow2.0 tf.keras.Model.load_weights() 報錯處理問題

    這篇文章主要介紹了解決Tensorflow2.0 tf.keras.Model.load_weights() 報錯處理問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨想過來看看吧
    2020-06-06
  • 詳解Java中一維、二維數(shù)組在內存中的結構

    詳解Java中一維、二維數(shù)組在內存中的結構

    這篇文章主要介紹了Java中一維、二維數(shù)組在內存中的結構,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python使用pyshp庫讀取shapefile信息的方法

    Python使用pyshp庫讀取shapefile信息的方法

    今天小編就為大家分享一篇Python使用pyshp庫讀取shapefile信息的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python3 wechatpy微信支付的項目實踐

    python3 wechatpy微信支付的項目實踐

    本文主要介紹了python3 wechatpy微信支付的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • 深入淺析Python代碼規(guī)范性檢測

    深入淺析Python代碼規(guī)范性檢測

    這篇文章主要介紹了Python代碼規(guī)范性檢測,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 關于Python的高級數(shù)據(jù)結構與算法

    關于Python的高級數(shù)據(jù)結構與算法

    這篇文章主要介紹了關于Python的高級數(shù)據(jù)結構與算法,掌握這些數(shù)據(jù)結構和算法將幫助我們在實際編程中解決各種問題,提高我們的編程技巧和水平,需要的朋友可以參考下
    2023-04-04

最新評論