2016-09-22 1 views
0

Je voudrais écrire un programme qui prend un fichier .dmg qui est de 1,6 Go et le diviser en morceaux de 100 Mo.diviser une image disque en plus petites parties en utilisant Python

Je voudrais aussi écrire un autre programme qui puisse ensuite tout remettre en place pour qu'il puisse être monté et utilisé.

Je suis très nouveau à Python (et à tout type de langage de programmation en général) et ne trouve rien ici sur cette chose spécifique. Faites-moi savoir si j'utilise une terminologie incorrecte afin que je puisse apprendre à chercher plus efficacement.

Merci!

+0

Je ne comprends pas exactement quel est le problème que vous rencontrez. Pouvez-vous nous montrer le code que vous avez déjà? Les membres de Stack Overflow n'écriront pas votre code pour vous. –

+0

Je n'ai actuellement aucun code. Je suis principalement à la recherche de direction afin que je puisse apprendre à le faire moi-même. Je ne veux surtout pas que quelqu'un écrive le code pour moi. – Andy

+0

Pas de problème du tout. Avez-vous essayé de rechercher une bibliothèque python qui gère les fichiers DMG? –

Répondre

0

Essayez cet exemple:

split.py

import sys, os 
kilobytes = 1024 
megabytes = kilobytes * 1000 
chunksize = int(1.4 * megabytes)     

def split(fromfile, todir, chunksize=chunksize): 
    if not os.path.exists(todir): 
     os.mkdir(todir) 
    else: 
     for fname in os.listdir(todir): 
      os.remove(os.path.join(todir, fname)) 
    partnum = 0 
    input = open(fromfile, 'rb') 
    while 1: 
     chunk = input.read(chunksize) 
     if not chunk: break 
     partnum = partnum+1 
     filename = os.path.join(todir, ('part%04d' % partnum)) 
     fileobj = open(filename, 'wb') 
     fileobj.write(chunk) 
     fileobj.close() 
    input.close() 
    assert partnum <= 9999 
    return partnum 

if __name__ == '__main__': 
    try: 
     parts = split('/Users/example/Desktop/SO/st/example.mp4', '/Users/example/Desktop/SO/st/new', 2000000) # 100000000 == 100 mb 
    except: 
     print('Error during split') 

pour rejoindre:

join.py

import os, sys 
readsize = 1024 

def join(fromdir, tofile): 
    output = open(tofile, 'wb') 
    parts = os.listdir(fromdir) 
    parts.sort() 
    for filename in parts: 
     filepath = os.path.join(fromdir, filename) 
     fileobj = open(filepath, 'rb') 
     while 1: 
      filebytes = fileobj.read(readsize) 
      if not filebytes: break 
      output.write(filebytes) 
     fileobj.close() 
    output.close() 

if __name__ == '__main__': 
    try: 
     join('/Users/example/Desktop/SO/st/new', 'example_join.mp4') 
    except: 
     print('Error joining files:') 
    else: 
     print('Join complete!') 
+0

Merci pour l'exemple! Comme je l'ai dit, j'apprends encore et je ne sais pas ce que je ne sais pas. J'aime passer en revue les exemples que les gens publient, apprendre ce que chaque morceau fait, puis le réécrire sans référence pour s'assurer que je le comprends. J'essaierai! – Andy