============================== 13.8 创建和解压归档文件 ============================== ---------- 问题 ---------- ä½ éœ€è¦åˆ›å»ºæˆ–è§£åŽ‹å¸¸è§æ ¼å¼çš„归档文件(比如.tar, .tgz或.zip) ---------- 解决方案 ---------- ``shutil`` æ¨¡å—æ‹¥æœ‰ä¸¤ä¸ªå‡½æ•°â€”— ``make_archive()`` å’Œ ``unpack_archive()`` 坿´¾ä¸Šç”¨åœºã€‚ 例如: .. code-block:: python >>> import shutil >>> shutil.unpack_archive('Python-3.3.0.tgz') >>> shutil.make_archive('py33','zip','Python-3.3.0') '/Users/beazley/Downloads/py33.zip' >>> ``make_archive()`` çš„ç¬¬äºŒä¸ªå‚æ•°æ˜¯æœŸæœ›çš„è¾“å‡ºæ ¼å¼ã€‚ å¯ä»¥ä½¿ç”¨ ``get_archive_formats()`` èŽ·å–æ‰€æœ‰æ”¯æŒçš„å½’æ¡£æ ¼å¼åˆ—表。例如: .. code-block:: python >>> shutil.get_archive_formats() [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('zip', 'ZIP file')] >>> ---------- 讨论 ---------- Python还有其他的模å—å¯ç”¨æ¥å¤„ç†å¤šç§å½’æ¡£æ ¼å¼ï¼ˆæ¯”如tarfile, zipfile, gzip, bz2)的底层细节。 ä¸è¿‡ï¼Œå¦‚æžœä½ ä»…ä»…åªæ˜¯è¦åˆ›å»ºæˆ–æå–æŸä¸ªå½’档,就没有必è¦ä½¿ç”¨åº•层库了。 å¯ä»¥ç›´æŽ¥ä½¿ç”¨ ``shutil`` ä¸çš„这些高层函数。 这些函数还有很多其他选项,用于日志打å°ã€é¢„æ£€ã€æ–‡ä»¶æƒé™ç‰ç‰ã€‚ å‚考 `shutil文档 <https://docs.python.org/3/library/shutil.html>`_