Hướng dẫn python extract zip file to temporary directory - python giải nén tệp zip vào thư mục tạm thời

Tôi đang cố gắng quay lại Python và tôi không chắc chắn bắt đầu từ đâu, nhưng tôi muốn tải xuống tệp zip cục bộ xuống temp, trích xuất các tệp và sau đó liệt kê các tệp [là 99,99% các tệp CSV thời gian] . Tôi muốn liệt kê các tệp để tôi có thể xử lý thêm một trong các tệp dựa trên logic với lợi ích của thư mục TEMP được xóa tự động.

Tôi có thể làm hầu hết ở trên trong R khá ngắn gọn, nhưng yêu cầu của tôi là ánh xạ ý tưởng này đến Python và từ các tìm kiếm trên Google ban đầu của tôi, các giải pháp mà tôi tìm thấy dường như không đơn giản cũng như không chính xác những gì tôi đang tìm kiếm.

Mọi sự trợ giúp sẽ rất được trân trọng.

Hỏi ngày 17 tháng 4 năm 2019 lúc 2:09Apr 17, 2019 at 2:09

Btibert3Btibert3Btibert3

37.6K44 Huy hiệu vàng126 Huy hiệu bạc167 Huy hiệu đồng44 gold badges126 silver badges167 bronze badges

1

Chúng tôi bắt đầu bằng cách tải xuống tệp qua các yêu cầu

import requests

results = requests.get['']
with open['/tmp/zip_folder.zip', 'wb'] as f:
    f.write[results.content]

Sau đó chúng tôi trích xuất tệp zip vào /tmp bằng zipfile

import zipfile
file = zipfile.ZipFile['/tmp/zip_folder.zip']
file.extractall[path='/tmp']

Sau đó chúng tôi liệt kê các tập tin.

files = os.listdir['/tmp/zip_folder']
for file in files:
    if 'csv' in file:
        print[file]

Đã trả lời ngày 17 tháng 4 năm 2019 lúc 2:41Apr 17, 2019 at 2:41

3

Trong bài viết này, chúng tôi sẽ thảo luận về các cách khác nhau để giải nén hoặc trích xuất đơn, nhiều hoặc tất cả các tệp từ kho lưu trữ zip đến thư mục hiện tại hoặc khác nhau.

Trong mô -đun Zipfile của Python, lớp Zipfile cung cấp chức năng thành viên để trích xuất tất cả các nội dung từ kho lưu trữ zip,

ZipFile.extractall[path=None, members=None, pwd=None]

Nó chấp nhận các đối số sau:

  • Thành viên: Tên đầy đủ của tập tin sẽ được trích xuất. Nó nên một từ danh sách các tên tệp được lưu trữ được trả về bởi zipfile.namelist [] : location where zip file need to be extracted, if not provided it will extract the contents in current directory.
  • Thành viên: Danh sách các tập tin sẽ được trích xuất. Nó sẽ trích xuất tất cả các tệp trong zip nếu đối số này không được cung cấp. : list of files to be extracted. It will extract all the files in zip if this argument is not provided.
  • PWD: Nếu tệp zip được mã hóa thì hãy truyền mật khẩu trong mặc định đối số này là không có. : If zip file is encrypted then pass password in this argument default is None.

Yêu cầu mô -đun:

from zipfile import ZipFile

Hãy để sử dụng điều này để trích xuất tất cả các nội dung từ các tệp zip.

Trích xuất tất cả các tệp từ tệp zip vào thư mục hiện tại

Giả sử chúng ta có một tệp zip ‘sample.zip. Trong thư mục hiện tại của chúng tôi, hãy để xem cách trích xuất tất cả các tệp từ nó. Để giải nén nó trước tiên tạo một đối tượng zipfile bằng cách mở tệp zip ở chế độ đọc và sau đó gọi trích xuất [] trên đối tượng đó, tức là.
To unzip it first create a ZipFile object by opening the zip file in read mode and then call extractall[] on that object i.e.

# Create a ZipFile Object and load sample.zip in it
with ZipFile['sampleDir.zip', 'r'] as zipObj:
   # Extract all the contents of zip file in current directory
   zipObj.extractall[]

Nó sẽ trích xuất tất cả các tệp trong zip tại thư mục hiện tại. & Nbsp; & nbsp; nếu các tệp có cùng tên đã có mặt tại vị trí trích xuất thì nó sẽ ghi đè lên các tệp đó.

Quảng cáo

Trích xuất tất cả các tệp từ tệp zip sang thư mục khác nhau

Để trích xuất tất cả các tệp từ tệp ZIP sang một thư mục khác, chúng ta có thể chuyển vị trí đích dưới dạng đối số trong Extractall []. Đường dẫn có thể là tương đối hoặc tuyệt đối.

# Create a ZipFile Object and load sample.zip in it
with ZipFile['sampleDir.zip', 'r'] as zipObj:
   # Extract all the contents of zip file in different directory
   zipObj.extractall['temp']

Nó sẽ trích xuất tất cả các tệp trong ‘sample.zip, in & nbsp; Thư mục tạm thời.temp folder.

Trích xuất một vài tệp từ một tệp zip lớn dựa trên điều kiện

Giả sử chúng ta có một tệp zip rất lớn và chúng ta cần một vài tệp từ hàng ngàn tệp trong kho lưu trữ. Giải nén tất cả các tập tin từ zip lớn có thể mất vài phút. Nhưng nếu chỉ quan tâm đến một vài tệp được lưu trữ, thì & nbsp; thay vì giải nén toàn bộ tệp, chúng ta cũng có thể trích xuất một tệp duy nhất từ ​​tệp zip.

Trong mô -đun Zipfile của Python, lớp Zipfile cung cấp chức năng thành viên để trích xuất một đơn từ tệp zip,

ZipFile.extract[member, path=None, pwd=None]

Nó chấp nhận các đối số sau:

  • Thành viên: Tên đầy đủ của tập tin sẽ được trích xuất. Nó nên một từ danh sách các tên tệp được lưu trữ được trả về bởi zipfile.namelist [] : Full name of file to be extracted. It should one from the list of archived files names returned by ZipFile.namelist[]
  • Đường dẫn: Vị trí cần trích xuất tệp zip, nếu không được cung cấp, nó sẽ trích xuất tệp trong thư mục hiện tại. location where zip file need to be extracted, if not provided it will extract the file in current directory.
  • PWD: Nếu tệp zip được mã hóa thì hãy truyền mật khẩu trong mặc định đối số này là không có. If zip file is encrypted then pass password in this argument default is None.

Hãy để sử dụng điều này để chỉ trích xuất các tệp CSV từ tệp zip, tức là.

# Create a ZipFile Object and load sample.zip in it
with ZipFile['sampleDir.zip', 'r'] as zipObj:
   # Get a list of all archived file names from the zip
   listOfFileNames = zipObj.namelist[]
   # Iterate over the file names
   for fileName in listOfFileNames:
       # Check filename endswith csv
       if fileName.endswith['.csv']:
           # Extract a single file from zip
           zipObj.extract[fileName, 'temp_csv']

Nó sẽ chỉ trích xuất các tệp CSV từ kho lưu trữ zip đã cho.

Ví dụ hoàn chỉnh như sau,

from zipfile import ZipFile


def main[]:

    print['Extract all files in ZIP to current directory']
    # Create a ZipFile Object and load sample.zip in it
    with ZipFile['sampleDir.zip', 'r'] as zipObj:
       # Extract all the contents of zip file in current directory
       zipObj.extractall[]

    print['Extract all files in ZIP to different directory']

    # Create a ZipFile Object and load sample.zip in it
    with ZipFile['sampleDir.zip', 'r'] as zipObj:
       # Extract all the contents of zip file in different directory
       zipObj.extractall['temp']

    print['Extract single file from ZIP']

    # Create a ZipFile Object and load sample.zip in it
    with ZipFile['sampleDir.zip', 'r'] as zipObj:
       # Get a list of all archived file names from the zip
       listOfFileNames = zipObj.namelist[]
       # Iterate over the file names
       for fileName in listOfFileNames:
           # Check filename endswith csv
           if fileName.endswith['.csv']:
               # Extract a single file from zip
               zipObj.extract[fileName, 'temp_csv']



if __name__ == '__main__':
   main[]
& nbsp;
 

Làm cách nào để trích xuất một tệp zip trong Python?

Python3. # vào một vị trí cụ thể. Nhập mô -đun zipfile Tạo đối tượng tệp ZIP bằng lớp ZipFile. Gọi phương thức trích xuất [] trên đối tượng tệp zip và truyền tên của tệp để được trích xuất và đường dẫn nơi tệp cần được trích xuất và trích xuất tệp cụ thể có trong zip.Call the extract[] method on the zip file object and pass the name of the file to be extracted and the path where the file needed to be extracted and Extracting the specific file present in the zip.

Làm cách nào để tạo tệp TMP trong Python?

Tạo các tập tin tạm thời..
Đầu tiên, chúng ta phải nhập tempfile sau đó tệp được tạo bằng hàm tạm thờifile [] ..
Tệp được mở trong chế độ W+B [cả đọc và ghi vào tệp mở] theo mặc định ..
Hàm này tạo một tệp tạm thời trong thư mục tạm thời và trả về một đối tượng tệp ..

Làm cách nào để tạo một thư mục tạm thời trong Python?

Tạm thời [] Hàm này tạo một tệp tạm thời trong thư mục TEMP và trả về một đối tượng tệp, tương tự như hàm Open-in [] tích hợp.....
Được đặt tênTemdyFile [] Hàm này tương tự như hàm tạm thời [].....
Tạm thờiDirectory [] Hàm này tạo ra một thư mục tạm thời.....
Mkstemp [] ....
mkdtemp [] ....
gettempdir[].

Làm cách nào để trích xuất một tệp zip trong máy tính xách tay Jupyter?

Bài viết này sẽ trình bày thông qua các ví dụ cách giải quyết cách trích xuất tệp zip trong lỗi Notebook Jupyter ...
Zipped = [["A", 1], ["B", 2]].
đã giải nén_object = zip [*zipped].
unzipped_list = list [unzipped_object] các phần tử được ghép nối riêng biệt trong tuple để tách các bộ dữ liệu ..
print[unzipped_list].

Bài Viết Liên Quan

Chủ Đề