পাইথনে ফাইল আনজিপিং করা হচ্ছে


435

আমি zipfileডকুমেন্টেশনের মাধ্যমে পড়েছি , তবে বুঝতে পারি না কীভাবে কোনও ফাইল আনজিপ করা যায়, কেবল কীভাবে একটি ফাইল জিপ করা যায়। জিপ ফাইলের সমস্ত বিষয়বস্তু একই ডিরেক্টরিতে আনজিপ করব কীভাবে?


সম্পর্কিত: আনজিপিং ফাইলগুলি পুনরাবৃত্তভাবে স্ট্যাকওভারফ্লো.com / জিজ্ঞাসা
টুং

উত্তর:


784
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
    zip_ref.extractall(directory_to_extract_to)

যে প্রায় কাছাকাছি এটা!


7
সমস্ত .zip সংরক্ষণাগারে যদি .zip সংরক্ষণাগারটির বিষয়বস্তু একই হয় তবে কী হবে? উত্তোলনের আগে কীভাবে বিষয়বস্তুটির নাম পরিবর্তন করবেন? উদাহরণস্বরূপ: 1.zip 2.zip .. সব কন্টেন্ট.টেক্সট ধারণ করে: 1content.txt 2content.txt এর মতো সবগুলি এক্সট্রাক্ট করুন?
iratzhash

8
@ iratzhash আমি সাধারণত টেম্পাইল ব্যবহার করে বিষয়বস্তুগুলির জন্য একটি নতুন অস্থায়ী ডিরেক্টরি তৈরি করি: docs.python.org/3/library/tempfile.html আমি অস্থায়ী ডিরেক্টরিতে আনজিপ করি এবং সেখান থেকে ফাইলগুলি সরান / পরিচালনা করি।
ডেভ ভুলে গে

8
@ 3kstc আমি করব from zipfile import ZipFile। এটি ব্যবহার করার সময়, আপনার আর ব্যবহারের প্রয়োজন নেই zipfile.ZipFile, এবং ব্যবহার করতে পারেন ZipFile(zip_file_name)
ডিবাগ 255

@ আইরাতজশ আমি বুঝতে পারি যে আপনি 1.5 বছর আগে মন্তব্য করেছিলেন। তবে ঠিক অন্যরা জানেন, সাধারণত একটি জিপ ফাইলের মধ্যে থাকা সামগ্রীগুলি কেবল পঠনযোগ্য। একটি ভাল উত্তর এখানে "বোকে"
দেবুগ 255

একটি মেটা নোটের মতো, তবে নভেম্বর 2018 এর সম্পাদনাটি ইতিমধ্যে প্রাসঙ্গিক পরিচালক (এবং এর অর্থের সাথে লিঙ্কগুলি) ব্যবহার করেছে এমন একটি অন্য উত্তরের সাথে একেবারে অনুরূপ করে তোলে।
ইঞ্জিনিরো

304

যদি আপনি পাইথন ৩.২ বা তার পরে ব্যবহার করেন:

import zipfile
with zipfile.ZipFile("file.zip","r") as zip_ref:
    zip_ref.extractall("targetdir")

আপনি ব্যবহার করতে হবে আত ঘনিষ্ঠ বা ধরা চেষ্টা / যেমন ব্যবহার এই সঙ্গে প্রেক্ষাপটে ম্যানেজার নির্মাণ।


18
জিপফায়াল ২.7 বা তার পরে প্রসঙ্গ পরিচালক হিসাবেও কাজ করে: ডকস.পাইথন.আর

ডকস.পাইথন.আর. / .6.//library/zipfile.html#zipfile.BadZipFile ব্যতিক্রম কীভাবে মোকাবেলা করবেন ? সাধারণত, প্রসঙ্গের পরিচালক (বিবৃতি সহ) ব্যতীত চেষ্টা / ব্যবহার করার সর্বোত্তম অনুশীলন কোনটি?
স্নোঅনিয়ন

1
zipfile+ pathlib= জয়। মন যদি আমি আপনার উত্তর সামান্য আপডেট?
দাতানোভিস

38

extractallপদ্ধতিটি ব্যবহার করুন , যদি আপনি পাইথন ২. the+ ব্যবহার করেন

zip = ZipFile('file.zip')
zip.extractall()

আপনাকে কী কোনও গন্তব্য (zip.extractall (গন্তব্য)) নির্দিষ্ট করতে হবে না?
asonnenschein

3
আপনি যদি কেবল জিপফাইলের মতো একই ডিরেক্টরিতে সন্ধান করছেন
ড্যান গেইল

10
@ ড্যানগেইল এটি জিপ ফাইলটিকে বর্তমানের কার্যনির্বাহী ডিরেক্টরিতে সরিয়ে ফেলা হবে বলে মনে হচ্ছে, জিপ ফাইলের অবস্থান নয়
ব্রায়ান লেশম্যান

4
আমার জন্যে, জিপ ফাইল () কাজ করে নি কিন্তু zipfile.ZipFile () করেনি - ইম্পোর্ট জিপ ফাইল পরে
তত্পর সিম

6

আপনি কেবল আমদানি করতে পারেন ZipFile:

from zipfile import ZipFile
zf = ZipFile('path_to_file/file.zip', 'r')
zf.extractall('path_to_extract_folder')
zf.close()

কাজ করে পাইথন 2 এবং পাইথন 3


1
আপনার মনোযোগের জন্য আপনাকে ধন্যবাদ @ মাইলসহোল্ডেড যাইহোক, এটি গৃহীত উত্তরের কোনও অনুলিপি নয়। আমি একমত যে এগুলি একে অপরের সাথে সমান, তবে তারা আলাদা। এটি আপনার মন্তব্যেও ইঙ্গিত করা হয়েছে, কারণ গ্রহণযোগ্যটি অবশ্যই আমার চেয়ে আপনার চেয়ে ভাল। যদি এটি অনুলিপি হয় তবে এটি একই রকম হবে ... কারও পক্ষে আমার উত্তরটি মূল্যবান হতে পারে কারণ সম্ভবত এটি আরও বেশি পঠনযোগ্য এবং আপনি লক্ষ্য করেছেন যে কম কোড আমদানি করা হয়েছে ... এই মতবিরোধের কারণেই আমি আমার উত্তর দেওয়ার সিদ্ধান্ত নিয়েছিলাম একটি বিকল্প দিতে। তাই না কেন আমরা একটি উত্তর গ্রহণের পরে অন্যান্য উত্তরগুলি রাখতে পারি? সমস্ত সেরা
22 তে সিংহমিলিকো

এই উত্তরটিতে কি দোষ? কেন কেউ তাকে একটি নেতিবাচক পয়েন্ট দিলেন? সর্বোপরি, এটি প্রশ্নের উত্তর এবং অন্যান্য উত্তরের তুলনায় এর সরলতার দ্বারা পৃথক করা হয়েছে, যা উত্তর অনুসন্ধানে থাকা কিছু লোকের পক্ষে গুরুত্বপূর্ণ হতে পারে। তাই না?
সিংহুমিলিকো

1
@ মাইলসহোল্ডেড 3.6.5 এ import zipfile.ZipFileউত্পন্ন ModuleNotFoundError: No module named 'zipfile.ZipFile'; 'zipfile' is not a packageকরে। আমার পক্ষে এটি অপারেটরের ত্রুটি হিসাবে প্রকাশ্য, তবে আমি এটি জানি না।
মাইকএফ

6

এটা চেষ্টা কর :


import zipfile
def un_zipFiles(path):
    files=os.listdir(path)
    for file in files:
        if file.endswith('.zip'):
            filePath=path+'/'+file
            zip_file = zipfile.ZipFile(filePath)
            for names in zip_file.namelist():
                zip_file.extract(names,path)
            zip_file.close() 

পাথ: আনজিপ ফাইলের পথ


3
import os 
zip_file_path = "C:\AA\BB"
file_list = os.listdir(path)
abs_path = []
for a in file_list:
    x = zip_file_path+'\\'+a
    print x
    abs_path.append(x)
for f in abs_path:
    zip=zipfile.ZipFile(f)
    zip.extractall(zip_file_path)

এটিতে জিপ না থাকলে এতে ফাইলের বৈধতা থাকে না। ফোল্ডারে যদি .zip ফাইলবিহীন থাকে তবে এটি ব্যর্থ হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.