·Ö¾íѹËõÎļþ£¬·Ö¾íѹËõÎļþËð»µ

Éú»î³£Ê¶ 2025-04-07 21:560Éú»î³£Ê¶www.shimianzheng.cn

ÕâÆªÎÄÕÂÖ÷ÒªÁËPython3ÈçºÎʵÏÖZIP·Ö¾íѹËõµÄ¹ý³Ì£¬Í¨¹ýʾÀý´úÂëÏêϸÁËÏà¹Ø²Ù×÷£¬¶ÔÓÚѧϰºÍ¹¤×÷¾ßÓÐÒ»¶¨µÄ²Î¿¼¼ÛÖµ¡£

¾¡¹ÜÎÒÃǵÚÒ»·´Ó¦ÊÇʹÓÃPythonÄÚÖõÄzipfile¿âÀ´Ñ¹ËõZIPÎļþ£¬µ«¹Ù·½ÎĵµÃ÷È·±íʾ¸ÃÄ£¿éĿǰ²»Ö§³Ö´¦Àí·Ö¾íZIPÎļþ£¬ÕâÈÃÎÒÃÇÃæÁÙһЩÌôÕ½¡£

ÔÚѰÇó½â¾ö·½°¸µÄ¹ý³ÌÖУ¬ÎÒ²éÔÄÁË´óÁ¿µÄ×ÊÁÏ£¬°üÀ¨Google¡¢CSDN¡¢StackoverflowµÈ£¬µ«²¢Î´ÕÒµ½¿ÉÐеĽâ¾ö·½°¸¡£Ò»Ð©½¨ÒéÌáµ½µ÷ÓÃÍⲿ½âѹ³ÌÐòÀ´ÊµÏÖ·Ö¾íѹËõ¹¦ÄÜ£¬µ«ÎÒÏ£ÍûÄܹ»ÕÒµ½Ò»ÖÖ²»ÒÀÀµÍⲿ³ÌÐòµÄ·½·¨¡£

ÓÚÊÇ£¬ÎÒ¾ö¶¨×Ô¼º¶¯ÊÖ½â¾öÕâ¸öÎÊÌ⡣ͨ¹ýÑо¿ZIPÎļþ¸ñʽ¹æ·¶£¬²¢¶Ô±ÈWinRar´´½¨µÄ·Ö¾íѹËõºÍµ¥¸öZIPÎļþµÄ²îÒ죬ÎÒ×îÖÕÕÒµ½ÁËʵÏÖ·Ö¾íѹËõµÄ·½·¨¡£Õâ¸ö¹ý³Ì²¢²»ÈÝÒ×£¬ÐèÒªÉîÈëÀí½âZIPÎļþµÄ½á¹¹ºÍ¸ñʽ¡£

¾ßÌåÀ´Ëµ£¬Èç¹ûÄãÏ뽫һ¸ö´óÎļþtest.zip·Ö³É¶à¸ö·Ö¾íÎļþ£¬±ÈÈçtest.z01¡¢test.z02µÈ£¬Ê×ÏÈÐèÒªÔÚ´´½¨µÄµÚÒ»¸ö·Ö¾íÎļþtest.z01µÄÇ°ÃæÌí¼Ó·Ö¾íѹËõµÄÎļþÍ·£¨header£©£¬Õâ¸öÍ·Õ¼4¸ö×Ö½Ú¡£µ¥¸öѹËõÎļþµÄheader±¾ÉíÒѾ­ÓÐÁË·Ö¾íÐÅÏ¢£¬¶ø·Ö¾íѹËõµÄÐèÒª¶îÍâµÄ´¦Àí¡£½ÓÏÂÀ´£¬ÄãÐèÒª´ÓԭʼµÄtest.zipÎļþÖжÁÈ¡¡°Ò»¸ö·Ö¾í´óС-4¸ö×Ö½Ú¡±µÄÊý¾Ý£¬²¢Ð´Èëtest.z01ÖС£È»ºó£¬¼ÌÐø¶Áȡһ¸ö·Ö¾í´óСµÄÊý¾Ý£¬Ð´Èëtest.z02£¬ÒÔ´ËÀàÍÆ¡£Ã¿¸ö·Ö¾íÎļþµÄÃû³ÆÒÀÈ»±£³ÖΪtest.zip¡£

Õâ¸ö¹ý³ÌÐèҪϸÐĺÍÄÍÐÄ£¬ÒòΪÈκδíÎ󶼿ÉÄܵ¼Ö·־íÎļþÎÞ·¨ÕýÈ·½âѹ¡£Í¨¹ýÕâ¸ö¹ý³Ì£¬ÎÒ²»½öѧ»áÁËPythonµÄIO²Ù×÷£¬»¹ÉîÈëÀí½âÁËZIPÎļþµÄ½á¹¹ºÍ¸ñʽ¡£Ï£ÍûÕâÆªÎÄÕÂÄܶÔÄãÓÐËù°ïÖú£¬Èç¹ûÄãÓÐÈκÎÎÊÌâ»òÐèÒª½øÒ»²½µÄ½âÊÍ£¬ÇëËæÊ±ÌáÎÊ¡£¡¾PythonÖ®Âá¿·Ö¾íѹËõµÄÒÕÊõ£ºÉîÈëÀí½âÓëʵ¼ù

ÔÚÊý¾Ý´¦ÀíºÍ´æ´¢µÄ¹ý³ÌÖУ¬ÎÒÃǾ­³£»áÓöµ½ÐèÒª´¦Àí´óÎļþµÄÇé¿ö¡£ÎªÁ˸üÓÐЧµØ¹ÜÀíÕâЩÎļþ£¬·Ö¾íѹËõ³ÉΪÁËÒ»ÖÖ³£¼ûµÄ½â¾ö·½°¸¡£***½«´øÄúÉîÈëÁ˽âPythonÖеķ־íѹËõ¼¼Êõ£¬²¢¶ÔÆäÖеÄϸ½Ú½øÐÐÖðÒ»¡£

ÈÃÎÒÃÇÀ´¿´Ò»ÏÂPythonÖÐÈçºÎʵÏÖ·Ö¾íѹËõ¡£ÒÔÏÂÊÇÒ»¸ö»ù±¾µÄʵÏÖʾÀý£º

```python

import os

import zipfile

def zip_by_volume(file_path, block_size):

"""¶ÔÎļþ½øÐз־íѹËõ"""

file_size = os.path.getsize(file_path) »ñÈ¡Îļþ´óС

path, file_name = os.path.split(file_path) ·ÖÀëÎļþ·¾¶ºÍÎļþÃû

suffix = file_name.split('.')[-1] »ñÈ¡Îļþºó׺Ãû

´´½¨ÁÙʱѹËõÎļþ

with zipfile.ZipFile(file_path + '.zip', 'w') as zf:

zf.write(file_path, arcname=file_name) ½«ÎļþдÈëÁÙʱѹËõ°ü

¼ì²éÎļþ´óСÊÇ·ñÐèÒª·Ö¾í

if file_size <= block_size:

return file_path + '.zip' ·µ»ØÁÙʱѹËõÎļþ·¾¶

else:

´´½¨·Ö¾íѹËõÎļþµÄ±£´æÄ¿Â¼

save_dir = path + os.sep + file_name + '_split'

if os.path.exists(save_dir): Èç¹ûĿ¼ÒÑ´æÔÚ£¬Ôòɾ³ý²¢ÖØÐ´´½¨

shutil.rmtree(save_dir)

os.mkdir(save_dir)

·Ö¸îѹËõ°ü²¢±£´æÎª·Ö¾íÎļþ

for i in range(1, int(file_size // block_size) + (file_size % block_size == 0) + 1): Ñ­»·´´½¨·Ö¾íÎļþ

with open(save_dir + os.sep + file_name.replace(suffix, f'_split_{i}{suffix}'), 'wb') as f: ´´½¨²¢´ò¿ª·Ö¾íÎļþдÈëÊý¾Ý

if i == 1: µÚÒ»¸ö·Ö¾íÐèÒªÌí¼Ó¶îÍâµÄÍ·²¿ÐÅÏ¢£¨ËÄ×Ö½Ú£©±êʶºóÐøµÄ·Ö¾íÐÅϢλÖõãλÖÃÆðʼλÖôóСÆðÊ¼Æ«ÒÆÁ¿´óС³¤¶ÈÆðʼλÖõã´óÐ¡Æ«ÒÆÁ¿³¤¶ÈµÈÐÅÏ¢ÔÝʱ²»Éæ¼°±¾¶Î´úÂëÖ÷ÒªÓÃÓÚ±£´æ***¼þµÄѹËõºóµÄÊý¾ÝµÄ¶ÁÈ¡²Ù×÷¶¨Î»µÈϸ½ÚʵÏÖ´úÂë½ÏΪ¸´ÔÓÕâÀïÖ»ÊǼòµ¥ÊµÏÖÒ»¸ö»ù´¡µÄ¿ò¼Ü¹¦ÄÜÑÝʾ´úÂëÔÝʱ²»É漰ϸ½ÚʵÏÖϸ½Ú²¿·Ö»áÔÚºóÐøµÄÎÄÕÂÖнøÐÐÏêϸ´Ë´¦ÂÔ¹ý²»±íÌí¼***ĸö×ֽڵıêʶͷ¼´¿É±£Ö¤ºóÐø½âѹʱ¿ÉÒÔÕý³£¶¨Î»µ½ÎļþµÄÆðʼλÖò¢ÊµÏÖÕý³£µÄ½âѹ²Ù×÷¼´°Ñ±êʶͷÉèΪѹËõºóµÄÊý¾ÝÆðʼλÖÃÆ«ÒÆÁ¿¼´¿ÉºóÐø½âѹʱ¸ù¾ÝÕâ¸öÆ«ÒÆÁ¿ÕÒµ½¶ÔÓ¦µÄÊý¾ÝλÖýøÐнâѹ²Ù×÷¼´¿ÉʵÏÖ·Ö¾íѹËõµÄ½âѹ²Ù×÷¶ÔÓÚºóÐøµÄ½âѹ²Ù×÷ÔÝʱ²»Éæ¼°±¾¶Î´úÂëÖ»¹Ø×¢Ñ¹Ëõ²Ù×÷ʵÏÖϸ½Ú»áÔÚºóÐøµÄÎÄÕÂÖнøÐÐÏêϸf.write(fp.read(block_size)) ½«Êý¾ÝдÈë·Ö¾íÎļþÖ±µ½Îļþ¶ÁÈ¡Íê±Ï¹Ø±ÕÎļþ²¢É¾³ýÁÙʱѹËõÎļþ×îºó·µ»Ø±£´æ·Ö¾íÎļþµÄĿ¼¼´¿ÉÐèҪעÒâµÄÊÇÓÉÓÚ´´½¨·Ö¾íѹËõʱÐèÒªÏÈÔÚ´ÅÅÌÉÏ´´½¨Ò»¸öÁÙʱѹËõ°üÈ»ºóÔÙ½«Æä²ð·ÖÒò´ËÕâÖÖ·½Ê½Êµ¼ÊÉÏ»á¶Ô´ÅÅ̽øÐÐÁ½´ÎдÈë´Ó¶øÀË·ÑÒ»¶¨µÄʱ¼äÕâÀïÌṩÁËÒ»ÖÖ»ùÓڹܵÀÁ÷µÄ½â¾ö·½°¸×÷ΪÓÅ»¯·½Ïòµ«ÈÔÐ迼ÂÇÆäËûϸ½ÚµÄʵÏÖ´Ë´¦²»×öÕ¹¿ªÒÔÃâÆ«ÀëÖ÷ÌâÒÔÏÂÊÇÏêϸʵÏֵIJ¿·ÖÈçÐèÉîÈëÀí½â¸ü¶àϸ½Ú¿É¼ÌÐø±¾´úÂë½ö¹©²Î¿¼Êµ¼Ê¿ª·¢Öл¹ÐèÒª¸ü¶àµÄ¿¼ÂǺÍϸ½Ú´¦ÀíÈçÓÐÈκÎÎÊÌâ»¶Ó­ÔÚÆÀÂÛÇøÌÖÂÛ½»Á÷¹²Í¬½ø²½Ñ§Ï°¹²Í¬½ø²½ÌáÉý¼¼Êõˮƽ¼ÓÓÍÐÖµÜÃÇÈçÓÐÒÉÎÊÇëËæÊ±ÁªÏµÎÒÎһἰʱ»Ø¸´´ó¼ÒµÄÏûÏ¢²¢Ìṩ°ïÖúºÍÖ§³ÖÔٴθÐл´ó¼ÒµÄ¹Ø×¢ºÍÖ§³ÖÒ»ÆðŬÁ¦¹²Í¬½ø²½Ñ§Ï°¼ÓÓͼÓÓͼÓÓÍ×îºó¸Ðл´ó¼ÒµÄÔĶÁÏ£Íû±¾ÆªÎÄÕÂÄܹ»¶ÔÄãÓÐËù°ïÖúºÍÖ§³ÖÔٴθÐл´ó¼ÒµÄ¹Ø×¢ºÍÖ§³Ö£¡``` ÕâÊÇÒ»¸ö¹ØÓÚPythonÖз־íѹËõ¼¼ÊõµÄÏêϸºÍʵ¼ù¡£ÎÒÃÇÌṩÁËÒ»¸ö»ù±¾µÄʵÏÖʾÀý£¬²¢¶ÔÆäÖеÄϸ½Ú½øÐÐÁËÖðÒ»¡£ÕâÖÖ·½·¨µÄʵÏÖ´æÔÚһЩȱµã£¬ÀýÈçÐèÒªÔÚ´ÅÅÌÉÏ´´½¨ÁÙʱѹËõ°ü²¢¶ÔÆä½øÐвð·Ö£¬Õâʵ¼ÊÉÏ»á¶Ô´ÅÅ̽øÐÐÁ½´ÎдÈ룬´Ó¶øÀË·ÑÒ»¶¨µÄʱ¼ä¡£¶ÔÓڷdz£´óµÄÎļþ£¬ÄÚ´æÊ¹ÓÃÒ²¿ÉÄܳÉΪһ¸öÎÊÌâ¡£ÎÒÃÇ»¹ÁËʹÓùܵÀÁ÷½øÐÐÓÅ»¯µÄ¿ÉÄÜÐÔ£¬µ«ÓÉÓÚһЩ¼¼Êõϸ½ÚµÄÏÞÖÆ£¬ÕâÖÖ·½·¨ÔÚʵ¼ÊÓ¦ÓÃÖпÉÄÜ´æÔÚÒ»¶¨µÄÌôÕ½¡£Ï£Íûͨ¹ý***µÄºÍ·ÖÎö£¬Äܹ»°ïÖú´ó¼Ò¸üÉîÈëµØÀí½âPythonÖеķ־íѹËõ¼¼Êõ£¬²¢ÔÚʵ¼ÊÏîÄ¿ÖÐÁé»îÓ¦ÓÃÕâЩ֪ʶ¡£Èç¹ûÄúÓÐÈκÎÒÉÎÊ»ò½¨Ò飬ÇëËæÊ±ÓëÎÒÃǽ»Á÷£¬ÎÒÃǻἰʱ»Ø¸´²¢¾¡Á¦Ìṩ°ïÖúºÍÖ§³Ö¡£¸ÐлÄúµÄ¹Ø×¢ºÍÖ§³Ö£¡Ï£Íûͨ¹ýÎÒÃǵĹ²Í¬Å¬Á¦ºÍѧϰ£¬²»¶ÏÌáÉý¼¼Êõˮƽ¡£

Copyright@2016-2025 www.shimianzheng.cn ʧÃßÍø°æ°åËùÓÐ