最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

下面是一種用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()

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

相關(guān)文章

  • 解決python中文亂碼問題方法總結(jié)

    解決python中文亂碼問題方法總結(jié)

    這篇文章主要介紹了解決python中文亂碼問題方法總結(jié),需要的朋友可以參考下
    2021-05-05
  • 詳解修改Anaconda中的Jupyter Notebook默認工作路徑的三種方式

    詳解修改Anaconda中的Jupyter Notebook默認工作路徑的三種方式

    這篇文章主要介紹了詳解修改Anaconda中的Jupyter Notebook默認工作路徑的三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Python實現(xiàn)身份證號碼解析

    Python實現(xiàn)身份證號碼解析

    本文給大家匯總介紹下使用Python實現(xiàn)身份證號碼驗證解析的幾個方法,有需要的小伙伴可以參考下。
    2015-09-09
  • python 自動化將markdown文件轉(zhuǎn)成html文件的方法

    python 自動化將markdown文件轉(zhuǎn)成html文件的方法

    這篇文章主要介紹了python 自動化將markdown文件轉(zhuǎn)成html文件的方法的相關(guān)資料,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • Python如何提取Word文檔中的超鏈接

    Python如何提取Word文檔中的超鏈接

    在數(shù)字化辦公場景中,Word文檔作為承載結(jié)構(gòu)化信息的重要載體,常包含大量嵌入的超鏈接以關(guān)聯(lián)外部資源或?qū)崿F(xiàn)內(nèi)容交互,下面我們看看如何使用Python實現(xiàn)批量提取這些超鏈接吧
    2025-03-03
  • python smtplib發(fā)送帶附件郵件小程序

    python smtplib發(fā)送帶附件郵件小程序

    這篇文章主要為大家詳細介紹了python smtplib發(fā)送帶附件郵件小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 9個提高?Python?編程的小技巧

    9個提高?Python?編程的小技巧

    這篇文章主要介紹了9個提高?Python?編程的小技巧,下文分享python編程技巧,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-05-05
  • pyqt5實現(xiàn)俄羅斯方塊游戲

    pyqt5實現(xiàn)俄羅斯方塊游戲

    這篇文章主要介紹了pyqt5實現(xiàn)俄羅斯方塊游戲,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Numpy中np.vstack()?和?np.hstack()?的實現(xiàn)

    Numpy中np.vstack()?和?np.hstack()?的實現(xiàn)

    本文主要介紹了Numpy中np.vstack()和np.hstack()的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04
  • Python新手入門之單引號、雙引號與三引號的差異與應(yīng)用示例

    Python新手入門之單引號、雙引號與三引號的差異與應(yīng)用示例

    在Python當中表達字符串既可以使用單引號,也可以使用雙引號,那兩者有什么區(qū)別嗎?下面這篇文章主要給大家介紹了關(guān)于Python新手入門之單引號、雙引號與三引號的差異與應(yīng)用示例,需要的朋友可以參考下
    2024-03-03

最新評論

新郑市| 尼木县| 蓬莱市| 阳新县| 乐东| 琼结县| 手游| 南雄市| 太仓市| 新邵县| 沁阳市| 安宁市| 宁河县| 常德市| 新兴县| 深泽县| 吉安市| 文成县| 洛南县| 大厂| 石楼县| 枣阳市| 万载县| 晋城| 松原市| 巧家县| 曲靖市| 义乌市| 靖江市| 唐海县| 浦江县| 泸州市| 清苑县| 囊谦县| 夏邑县| 塔河县| 安义县| 曲阳县| 尚志市| 福泉市| 蓬溪县|