成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

用Python實現(xiàn)分割合并文件的方法

小編給大家分享一下用Python實現(xiàn)分割合并文件的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

墨玉ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

在平常的生活中,我們會遇到下面這樣的情況:

你下載了一個比較大型的游戲(假設有10G),現(xiàn)在想跟你的同學一起玩,你需要把這個游戲拷貝給他。

然后現(xiàn)在有一個問題是文件太大(我們不考慮你有移動硬盤什么的情況),假設現(xiàn)在只有一個2G或4G的優(yōu)盤,該怎么辦呢?

有很多方法,例如winrar壓縮的時候分成很多小卷,這里不累述。

在學習python之后,我們自己就可以解決這個問題啦。

我們可以自己寫一個腳本去分割合并文件,將文件分割成適合優(yōu)盤大小的小文件,再拷貝,然后再合并。

import sys,os
kilobytes = 1024
megabytes = kilobytes*1000
chunksize = int(200*megabytes)#default chunksize
def split(fromfile,todir,chunksize=chunksize):
    if not os.path.exists(todir):#check whether todir exists or not
        os.mkdir(todir)          
    else:
        for fname in os.listdir(todir):
            os.remove(os.path.join(todir,fname))
    partnum = 0
    inputfile = open(fromfile,'rb')#open the fromfile
    while True:
        chunk = inputfile.read(chunksize)
        if not chunk:             #check the chunk is empty
            break
        partnum += 1
        filename = os.path.join(todir,('part%04d'%partnum))
        fileobj = open(filename,'wb')#make partfile
        fileobj.write(chunk)         #write data into partfile
        fileobj.close()
    return partnum
if __name__=='__main__':
        fromfile  = input('File to be split?')
        todir     = input('Directory to store part files?')
        chunksize = int(input('Chunksize to be split?'))
        absfrom,absto = map(os.path.abspath,[fromfile,todir])
        print('Splitting',absfrom,'to',absto,'by',chunksize)
        try:
            parts = split(fromfile,todir,chunksize)
        except:
            print('Error during split:')
            print(sys.exc_info()[0],sys.exc_info()[1])
        else:
            print('split finished:',parts,'parts are in',absto)

下面是腳本運行的例子:

我們在F有一個X—MEN1.rar文件,1.26G大小,我們現(xiàn)在把它分割成400000000bit(大約380M)的文件。

Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:45:13) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
File to be split?F:\X-MEN1.rar
Directory to store part files?F:\split
Chunksize to be split?400000000
Splitting F:\X-MEN1.rar to F:\split by 400000000
split finished: 4 parts are in F:\split
>>>

這是分割后的文件:

用Python實現(xiàn)分割合并文件的方法

下面是文件合并腳本:

import sys,os
def joinfile(fromdir,filename,todir):
    if not os.path.exists(todir):
        os.mkdir(todir)
    if not os.path.exists(fromdir):
        print('Wrong directory')
    outfile = open(os.path.join(todir,filename),'wb')
    files = os.listdir(fromdir) #list all the part files in the directory
    files.sort()                #sort part files to read in order
    for file in files:
        filepath = os.path.join(fromdir,file)
        infile = open(filepath,'rb')
        data = infile.read()
        outfile.write(data)
        infile.close()
    outfile.close()
if __name__=='__main__':
        fromdir = input('Directory containing part files?')
        filename = input('Name of file to be recreated?')
        todir   = input('Directory to store recreated file?')
        
        try:
            joinfile(fromdir,filename,todir)
        except:
            print('Error joining files:')
            print(sys.exc_info()[0],sys.exc_info()[1])

運行合并腳本,將上面分割腳本分割的文件重組:

Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:45:13) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
Directory containing part files?F:\split
Name of file to be recreated?xman1.rar
Directory to store recreated file?F:\
>>>

運行之后可以看到F盤下生成了重組的xman.rar。

看完了這篇文章,相信你對用Python實現(xiàn)分割合并文件的方法有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

當前名稱:用Python實現(xiàn)分割合并文件的方法
文章位置:http://jinyejixie.com/article42/iisohc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航企業(yè)建站、移動網(wǎng)站建設、網(wǎng)站建設、做網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設
阳曲县| 炎陵县| 富平县| 阿勒泰市| 西昌市| 武邑县| 稷山县| 农安县| 永嘉县| 教育| 黑龙江省| 苍南县| 二连浩特市| 无锡市| 海林市| 富宁县| 淳化县| 德安县| 绿春县| 黄浦区| 北海市| 桐庐县| 海口市| 怀柔区| 邵武市| 横峰县| 赞皇县| 沁阳市| 周口市| 南丹县| 濮阳县| 滕州市| 蒙山县| 高密市| 绥滨县| 鞍山市| 阿拉尔市| 合阳县| 天峻县| 饶河县| 托里县|