各位用户为了找寻关于Python实现分割文件及合并文件的方法的资料费劲了很多周折。这里教程网为您整理了关于Python实现分割文件及合并文件的方法的相关资料,仅供查阅,以下为您介绍关于Python实现分割文件及合并文件的方法的详细内容

本文实例讲述了Python实现分割文件及合并文件的方法。分享给大家供大家参考。具体如下:

分割文件split.py如下:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #!/usr/bin/python ########################################################################## # split a file into a set of parts; join.py puts them back together; # this is a customizable version of the standard unix split command-line # utility; because it is written in Python, it also works on Windows and # can be easily modified; because it exports a function, its logic can # also be imported and reused in other applications; ########################################################################## import sys, os kilobytes = 1024 megabytes = kilobytes * 1000 chunksize = int(1.4 * megabytes)     # default: roughly a floppy def split(fromfile, todir, chunksize=chunksize):  if not os.path.exists(todir):     # caller handles errors   os.mkdir(todir)       # make dir, read/write parts  else:   for fname in os.listdir(todir):   # delete any existing files    os.remove(os.path.join(todir, fname))  partnum = 0  input = open(fromfile, 'rb')     # use binary mode on Windows  while 1:          # eof=empty string from read   chunk = input.read(chunksize)    # get next part <= 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()       # or simply open().write()  input.close()  assert partnum <= 9999       # join sort fails if 5 digits  return partnum if __name__ == '__main__':  if len(sys.argv) == 2 and sys.argv[1] == '-help':   print 'Use: split.py [file-to-split target-dir [chunksize]]'  else:   if len(sys.argv) < 3:    interactive = 1    fromfile = raw_input('File to be split? '# input if clicked    todir = raw_input('Directory to store part files? ')   else:    interactive = 0    fromfile, todir = sys.argv[1:3]     # args in cmdline    if len(sys.argv) == 4: chunksize = int(sys.argv[3])   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   if interactive: raw_input('Press Enter key') # pause if clicked

合并文件join_file.py如下:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #!/usr/bin/python ########################################################################## # join all part files in a dir created by split.py, to recreate file. # This is roughly like a 'cat fromdir/* > tofile' command on unix, but is # more portable and configurable, and exports the join operation as a # reusable function. Relies on sort order of file names: must be same # length. Could extend split/join to popup Tkinter file selectors. ########################################################################## 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__':  if len(sys.argv) == 2 and sys.argv[1] == '-help':   print 'Use: join.py [from-dir-name to-file-name]'  else:   if len(sys.argv) != 3:    interactive = 1    fromdir = raw_input('Directory containing part files? ')    tofile = raw_input('Name of file to be recreated? ')   else:    interactive = 0    fromdir, tofile = sys.argv[1:]   absfrom, absto = map(os.path.abspath, [fromdir, tofile])   print 'Joining', absfrom, 'to make', absto   try:    join(fromdir, tofile)   except:    print 'Error joining files:'    print sys.exc_info()[0], sys.exc_info()[1]   else:    print 'Join complete: see', absto   if interactive: raw_input('Press Enter key') # pause if clicked

希望本文所述对大家的Python程序设计有所帮助。