Hướng dẫn how do you make a zip file in python? - làm thế nào để bạn tạo một tệp zip trong python?
Đã hỏi 12 năm, 11 tháng trước 12 years, 11 months ago Show Đã xem 639k lần 639k times Làm thế nào tôi có thể tạo một kho lưu trữ zip của một cấu trúc thư mục trong Python?
Tomerikoo 16.8K16 Huy hiệu vàng39 Huy hiệu bạc57 Huy hiệu đồng16 gold badges39 silver badges57 bronze badges Đã hỏi ngày 6 tháng 12 năm 2009 lúc 11:12Dec 6, 2009 at 11:12
4 Cách dễ nhất là sử dụng 9. Nó hỗ trợ cả định dạng zip và tar.
Nếu bạn cần làm một cái gì đó phức tạp hơn so với việc hạ gục toàn bộ thư mục (chẳng hạn như bỏ qua một số tệp nhất định), thì bạn sẽ cần đào vào mô -đun 0 như những người khác đã đề xuất.
Phượng Hoàng 6.8784 Huy hiệu vàng37 Huy hiệu bạc44 Huy hiệu đồng4 gold badges37 silver badges44 bronze badges Đã trả lời ngày 3 tháng 9 năm 2014 lúc 17:26Sep 3, 2014 at 17:26
Crdaviscrdaviscrdavis 19.6K3 Huy hiệu vàng13 Huy hiệu bạc9 Huy hiệu đồng3 gold badges13 silver badges9 bronze badges 22 Như những người khác đã chỉ ra, bạn nên sử dụng zipfile. Tài liệu cho bạn biết những chức năng nào có sẵn, nhưng không thực sự giải thích cách bạn có thể sử dụng chúng để zip toàn bộ thư mục. Tôi nghĩ rằng dễ dàng nhất để giải thích với một số mã ví dụ:
Nico Schlömer 49,7K25 Huy hiệu vàng186 Huy hiệu bạc230 Huy hiệu đồng25 gold badges186 silver badges230 bronze badges Đã trả lời ngày 6 tháng 12 năm 2009 lúc 11:23Dec 6, 2009 at 11:23
Mark Byersmark ByersMark Byers 787K188 Huy hiệu vàng1553 Huy hiệu bạc1440 Huy hiệu đồng188 gold badges1553 silver badges1440 bronze badges 15 Để thêm nội dung của 1 vào tệp zip mới, bao gồm tất cả các tệp và thư mục con:
Đã trả lời ngày 6 tháng 12 năm 2009 lúc 11:28Dec 6, 2009 at 11:28
Ben Jamesben JamesBen James Huy hiệu vàng 117K2626 gold badges192 silver badges155 bronze badges 5
Trong kịch bản PythonTrong Python 2.7+, 2 có chức năng 3.
Ở đây, kho lưu trữ bị kéo dài sẽ được đặt tên là 4. Nếu 5 ở xa hơn so với 6, nó sẽ loại trừ các tệp không có trong 5, nhưng vẫn lưu trữ các tệp trong cha mẹ cho đến 6.Tôi đã có một vấn đề kiểm tra vấn đề này trên Cygwin với 2.7 - nó muốn một đối số root_dir, cho CWD:
Sử dụng Python từ vỏBạn có thể làm điều này với Python từ vỏ cũng bằng cách sử dụng mô -đun 0:
Trong đó 0 là tên của tệp đích bạn muốn (thêm 1 nếu bạn muốn, nó sẽ không tự động thực hiện) và SourcedIR là đường dẫn đến thư mục.Zipping Up Python (hoặc không chỉ muốn cha mẹ):Nếu bạn đang cố gắng tăng cường gói Python với 2 và 3 và bạn không muốn cha mẹ, thì đó là
Và
Sẽ chạy gói. (Lưu ý rằng bạn không thể chạy các gói con dưới dạng điểm nhập từ kho lưu trữ có khóa.) Zipping a Python Ứng dụng:Nếu bạn có Python3.5+và đặc biệt muốn tăng cường gói Python, hãy sử dụng ZipApp:
Đã trả lời ngày 31 tháng 3 năm 2016 lúc 18:57Mar 31, 2016 at 18:57
0 Hàm này sẽ đệ quy để tăng cường một cây thư mục, nén các tệp và ghi các tên tệp tương đối chính xác trong kho lưu trữ. Các mục lưu trữ giống như các mục được tạo bởi 4.
Đã trả lời ngày 13 tháng 6 năm 2013 lúc 6:57Jun 13, 2013 at 6:57
George V. Reillygeorge V. ReillyGeorge V. Reilly 15.3k7 Huy hiệu vàng41 Huy hiệu bạc38 Huy hiệu đồng7 gold badges41 silver badges38 bronze badges 1 Sử dụng SOWLIL, là một phần của bộ thư viện tiêu chuẩn Python. Sử dụng SHOTIL rất đơn giản (xem mã bên dưới):
Code: 0
Qback 3.7653 huy hiệu vàng22 Huy hiệu bạc35 Huy hiệu đồng3 gold badges22 silver badges35 bronze badges Đã trả lời ngày 12 tháng 10 năm 2018 lúc 9:46Oct 12, 2018 at 9:46
Vadiraj s jvadiraj s jVadiraj S J 62110 Huy hiệu bạc17 Huy hiệu đồng10 silver badges17 bronze badges 2 Python hiện đại (3.6+) sử dụng mô-đun 5 để xử lý các đường dẫn giống như OOP và 6 để làm toàn cầu đệ quy. Theo như tôi có thể nói, điều này tương đương với câu trả lời của George V. Reilly: Zips với nén, phần tử hàng đầu là một thư mục, giữ cho các dirs trống, sử dụng các đường dẫn tương đối. 1Lưu ý: Như các gợi ý loại tùy chọn chỉ ra, 7 không thể là đối tượng đường dẫn (sẽ được sửa trong 3.6.2+).Đã trả lời ngày 31 tháng 3 năm 2017 lúc 13:01Mar 31, 2017 at 13:01
monk-timemonk-timemonk-time 1.88312 Huy hiệu bạc17 Huy hiệu đồng12 silver badges17 bronze badges 1 Với mô -đun Python 3.9, 5 & 0, bạn có thể tạo một tệp zip từ bất cứ đâu trong hệ thống. 2Nó là gọn gàng, gõ và có ít mã hơn. Đã trả lời ngày 17 tháng 8 năm 2021 lúc 12:05Aug 17, 2021 at 12:05
JD Solankijd SolankiJD Solanki 7406 Huy hiệu bạc15 Huy hiệu Đồng6 silver badges15 bronze badges Để thêm nén vào tệp zip kết quả, hãy xem liên kết này. Bạn cần phải thay đổi: 3đến 4
Philshem 24.3K7 Huy hiệu vàng60 Huy hiệu bạc126 Huy hiệu đồng7 gold badges60 silver badges126 bronze badges Đã trả lời ngày 27 tháng 4 năm 2013 lúc 17:14Apr 27, 2013 at 17:14
E Smithe SmithE Smith 1371 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges 0 Tôi đã thực hiện một số thay đổi đối với mã được đưa ra bởi Mark Byers. Chức năng dưới đây cũng sẽ thêm các thư mục trống nếu bạn có chúng. Các ví dụ sẽ làm cho nó rõ ràng hơn đường dẫn được thêm vào zip. 5Trên đây là một chức năng đơn giản nên làm việc cho các trường hợp đơn giản. Bạn có thể tìm thấy lớp thanh lịch hơn trong ý chính của tôi: https://gist.github.com/eccenux/17526123107CA0AC28E6
Đã trả lời ngày 10 tháng 6 năm 2013 lúc 9:28Jun 10, 2013 at 9:28
NuxnuxNux 8.6035 Huy hiệu vàng55 Huy hiệu bạc69 Huy hiệu Đồng5 gold badges55 silver badges69 bronze badges 3 Tôi có một ví dụ mã khác có thể giúp, sử dụng python3, pathlib và zipfile. Nó sẽ hoạt động trong bất kỳ hệ điều hành nào. 6Đã trả lời ngày 2 tháng 10 năm 2015 lúc 10:03Oct 2, 2015 at 10:03
Để giữ lại hệ thống phân cấp thư mục theo thư mục phụ huynh để được lưu trữ: 7Nếu bạn muốn, bạn có thể thay đổi điều này để sử dụng 5 để tìm thấy tệp.Đã trả lời ngày 9 tháng 7 năm 2019 lúc 8:48Jul 9, 2019 at 8:48
Ryanjdillonryanjdillonryanjdillon 16.7K9 Huy hiệu vàng82 Huy hiệu bạc104 Huy hiệu đồng9 gold badges82 silver badges104 bronze badges Nếu bạn muốn có một chức năng như thư mục nén của bất kỳ trình quản lý tệp đồ họa phổ biến nào bạn có thể sử dụng mã sau, nó sẽ sử dụng mô -đun ZipFile. Sử dụng mã này, bạn sẽ có tệp zip với đường dẫn làm thư mục gốc của nó. 8Đã trả lời ngày 21 tháng 3 năm 2016 lúc 13:40Mar 21, 2016 at 13:40
VGe0rgeVGe0rgeVGe0rge 1.0103 huy hiệu vàng15 Huy hiệu bạc18 Huy hiệu đồng3 gold badges15 silver badges18 bronze badges Vì vậy, nhiều câu trả lời ở đây và tôi hy vọng tôi có thể đóng góp với phiên bản của riêng mình, dựa trên câu trả lời ban đầu (nhân tiện), nhưng với góc nhìn đồ họa hơn, cũng sử dụng bối cảnh cho mỗi thiết lập 0 và sắp xếp 2 có một đầu ra đặt hàng.Có các thư mục này và các tệp chúng (trong số các thư mục khác), tôi muốn tạo một 1 cho mỗi thư mục 4: 9Đây là những gì tôi đã áp dụng, với các nhận xét để hiểu rõ hơn về quy trình. 0Về cơ bản, đối với mỗi lần lặp trên 5, tôi đang mở bối cảnh cho thiết lập 0 và sau đó, lặp lại trên 7, đây là một ____68 của các tệp từ thư mục 9, hình thành đường dẫn tương đối cho mỗi tệp dựa trên thư mục 9 hiện tại, đến bối cảnh 0 đang chạy.Và đầu ra được trình bày như thế này: 1Để xem nội dung của mỗi thư mục 1, bạn có thể sử dụng lệnh 3: 2Đã trả lời ngày 5 tháng 9 năm 2019 lúc 13:10Sep 5, 2019 at 13:10
Ivanleonczivanleonczivanleoncz 8.2175 Huy hiệu vàng53 Huy hiệu bạc48 Huy hiệu đồng5 gold badges53 silver badges48 bronze badges Bạn có thể muốn xem mô -đun 0; Có tài liệu tại http://docs.python.org/l Library/zipfile.html.Bạn cũng có thể muốn 2 lập chỉ mục cấu trúc thư mục.Đã trả lời ngày 6 tháng 12 năm 2009 lúc 11:17Dec 6, 2009 at 11:17
me_andme_andme_and 14.8K7 Huy hiệu vàng61 Huy hiệu bạc96 Huy hiệu Đồng7 gold badges61 silver badges96 bronze badges Dưới đây là một biến thể của câu trả lời được đưa ra bởi Nux phù hợp với tôi: 3Đã trả lời ngày 30 tháng 7 năm 2014 lúc 23:13Jul 30, 2014 at 23:13
M Katzm KatzM Katz 4.9283 Huy hiệu vàng41 Huy hiệu bạc64 Huy hiệu đồng3 gold badges41 silver badges64 bronze badges Hãy thử cái dưới đây .it đã làm việc cho tôi.. 4Đã trả lời ngày 23 tháng 4 năm 2015 lúc 11:18Apr 23, 2015 at 11:18
ChandrachandraChandra 1011 huy hiệu vàng3 Huy hiệu bạc12 Huy hiệu đồng1 gold badge3 silver badges12 bronze badges Để cho linh hoạt hơn, ví dụ: Chọn Thư mục/Tệp theo tên Sử dụng: 5Cho một cây tập tin: 6Bạn có thể, ví dụ: Chỉ chọn 6 và 7: 7Hoặc chỉ 8 trong thư mục gọi tập lệnh và thêm mọi thứ từ đó: 8Đã trả lời ngày 25 tháng 9 năm 2018 lúc 13:32Sep 25, 2018 at 13:32
pbnpbnpbn 2.2461 Huy hiệu vàng22 Huy hiệu bạc38 Huy hiệu đồng1 gold badge22 silver badges38 bronze badges 1 Giả sử bạn muốn zip tất cả các thư mục (thư mục phụ) trong thư mục hiện tại. 9
Uli Köhler 12.7K15 Huy hiệu vàng65 Huy hiệu bạc116 Huy hiệu đồng15 gold badges65 silver badges116 bronze badges Đã trả lời ngày 9 tháng 4 năm 2019 lúc 8:25Apr 9, 2019 at 8:25
SushilinuxsushilinuxSushilinux 7007 Huy hiệu bạc21 Huy hiệu Đồng7 silver badges21 bronze badges Zip một tệp hoặc một cây (một thư mục và các hướng phụ của nó). 0Để nối vào một kho lưu trữ hiện có, Pass 9, để tạo một kho lưu trữ mới 0 (mặc định ở trên). Vì vậy, giả sử bạn muốn gói 3 cây thư mục khác nhau trong cùng một kho lưu trữ. 1Đã trả lời ngày 17 tháng 9 năm 2020 lúc 5:50Sep 17, 2020 at 5:50
Michael Ekokamichael EkokaMichael Ekoka 18.3k10 Huy hiệu vàng74 Huy hiệu bạc78 Huy hiệu đồng10 gold badges74 silver badges78 bronze badges Một giải pháp sử dụng 1, độc lập với HĐH được sử dụng: 2Đã trả lời ngày 5 tháng 1 năm 2021 lúc 9:09Jan 5, 2021 at 9:09
AlexalexAlex 2.2762 huy hiệu vàng27 Huy hiệu bạc40 Huy hiệu đồng2 gold badges27 silver badges40 bronze badges Cách rõ ràng để đi với Shutil, như câu trả lời hàng đầu thứ hai nói như vậy, nhưng nếu bạn vẫn muốn đi với Zipfile vì một số lý do, và nếu bạn gặp một số rắc rối khi làm điều đó (như ERR 13 trong Windows, v.v.) , Bạn có thể sử dụng bản sửa lỗi này: 3Cái này lặp đi lặp lại một cách đệ quy thông qua mọi bộ lọc/tệp phụ trong thư mục đã cho của bạn và ghi chúng vào tệp zip thay vì cố gắng trực tiếp zip một thư mục. Đã trả lời ngày 10 tháng 3 năm 2021 lúc 5:09Mar 10, 2021 at 5:09
Đây là một cách tiếp cận hiện đại, sử dụng pathlib và người quản lý bối cảnh. Đặt các tệp trực tiếp vào zip, thay vì trong một thư mục con. 4Đã trả lời ngày 14 tháng 12 năm 2016 lúc 21:50Dec 14, 2016 at 21:50
Rùa là những con cuteturtles rất dễ thươngTurtles Are Cute 3.0266 huy hiệu vàng28 Huy hiệu bạc37 Huy hiệu đồng6 gold badges28 silver badges37 bronze badges Tôi đã chuẩn bị một chức năng bằng cách hợp nhất giải pháp của Mark Byers với các bình luận của Reimund và Morten Zilmer (đường dẫn tương đối và bao gồm các thư mục trống). Như một thông lệ tốt nhất, 2 được sử dụng trong việc xây dựng tệp của Zipfile.Hàm cũng chuẩn bị một tên tệp zip mặc định với tên thư mục bị nén và tiện ích mở rộng '.zip'. Do đó, nó chỉ hoạt động với một đối số: thư mục nguồn được nén. 5Đã trả lời ngày 24 tháng 12 năm 2016 lúc 20:32Dec 24, 2016 at 20:32
Gürol Canbekgürol CanbekGürol Canbek 1.0181 Huy hiệu vàng14 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge14 silver badges20 bronze badges 6Đã trả lời ngày 15 tháng 6 năm 2017 lúc 6:24Jun 15, 2017 at 6:24
Chà, sau khi đọc các đề xuất, tôi đã đưa ra một cách rất giống nhau hoạt động với 2.7.x mà không tạo tên thư mục "hài hước" (tên giống như tuyệt đối) và sẽ chỉ tạo thư mục được chỉ định bên trong zip. Hoặc chỉ trong trường hợp bạn cần zip của mình để chứa một thư mục bên trong với nội dung của thư mục đã chọn. 7Đã trả lời ngày 15 tháng 8 năm 2018 lúc 21:27Aug 15, 2018 at 21:27
XedretxedretXedret 1.77317 Huy hiệu bạc24 Huy hiệu đồng17 silver badges24 bronze badges Chức năng để tạo tệp zip. 8Đã trả lời ngày 19 tháng 11 năm 2018 lúc 3:55Nov 19, 2018 at 3:55
Sushhsushhsushh Huy hiệu bạc 11511 silver badge10 bronze badges 2 Tệp ZIP ở đâu trong Python?Python: Làm thế nào để có được danh sách tất cả các tệp trong kho lưu trữ zip.. Zipfile.namelist () zipfile.namelist (). từ ZipFile nhập zipfile.từ Zipfile nhập zipfile .. Zipfile.InfoList () zipfile.infast (). Zipfile.printDir () zipfile.printdir (). Zip trong Python là gì?Zip () trong Python, nó được sử dụng để ánh xạ chỉ số tương tự của nhiều container để chúng có thể được sử dụng chỉ bằng cách sử dụng một thực thể duy nhất.Cú pháp: ZIP (*iterators) Tham số: Python iterables hoặc container (danh sách, chuỗi, v.v.) Giá trị trả về: Trả về một đối tượng iterator duy nhất, có các giá trị được ánh xạ từ tất cả.hộp đựng.used to map the similar index of multiple containers so that they can be used just using a single entity. Syntax : zip(*iterators) Parameters : Python iterables or containers ( list, string etc ) Return Value : Returns a single iterator object, having mapped values from all the. containers. |