ช่วยอธิบาย Code การ zip file หน่อยครับ

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderators: mindphp, ผู้ดูแลกระดาน

benzas00123
PHP Super Member
PHP Super Member
Posts: 244
Joined: 06/01/2020 9:58 am

ช่วยอธิบาย Code การ zip file หน่อยครับ

Post by benzas00123 »

คือตอนนี้ผมได้ทำการศึกษาเรื่องการ zip file และ Extract file ครับ โดยตอนนี้ผมกำลังศึกษาการ zip file ทั้งหมดที่อยู่ภายใน folder แล้วติดปัญหาที่ผมไม่เข้าใจ code บรรทัดตามด้านล่างนี้ครับ ว่ามันคืออะไร รู้แค่ว่ามันเอาไว้ในการ loop เช็ค file ที่อยู่ภายใน folder แต่ไม่เข้าใจกระบวนการทำงานของมันครับ

Code: Select all

    for root, directories, files in os.walk(directory): 
        for filename in files: 
            # join the two strings in order to form the full filepath. 
            filepath = os.path.join(root, filename) 
            file_paths.append(filepath) 

full code

Code: Select all

from zipfile import ZipFile 
import os 
  
def get_all_file_paths(directory): 
  
    # initializing empty file paths list 
    file_paths = [] 
  
    # crawling through directory and subdirectories 
    for root, directories, files in os.walk(directory): 
        for filename in files: 
            # join the two strings in order to form the full filepath. 
            filepath = os.path.join(root, filename) 
            file_paths.append(filepath) 
  
    # returning all file paths 
    return file_paths         
  
def main(): 
    # path to folder which needs to be zipped 
    directory = './python_files'
  
    # calling function to get all file paths in the directory 
    file_paths = get_all_file_paths(directory) 
  
    # printing the list of all files to be zipped 
    print('Following files will be zipped:') 
    for file_name in file_paths: 
        print(file_name) 
  
    # writing files to a zipfile 
    with ZipFile('my_python_files.zip','w') as zip: 
        # writing each file one by one 
        for file in file_paths: 
            zip.write(file) 
  
    print('All files zipped successfully!')         
  
  
if __name__ == "__main__": 
    main() 
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25901
Joined: 22/09/2008 6:18 pm
Contact:

Re: ช่วยอธิบาย Code การ zip file หน่อยครับ

Post by mindphp »

os.walk ไว้สำหรับดึงรายละเอียดไฟล์ ใน folder
โดยค่าที่ได้ออกมาจะมี 3 ตัวคือ
root,dirs,files
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
User avatar
jirawoot
PHP VIP Members
PHP VIP Members
Posts: 3130
Joined: 17/06/2019 10:30 am

Re: ช่วยอธิบาย Code การ zip file หน่อยครับ

Post by jirawoot »

os.walk(directory) == >> จะเป็นการนำเอา directory มาทำเป็น json ผลที่ได้มาจะได้เป็น obj
สามารถศึกษาดูจาก == >> http://code.activestate.com/recipes/577879-create-a-nested-dictionary-from-oswalk/
ผลที่ได้ <generator object walk at 0x7f2a0b668780>
จากนั้น นำ obj มาวน loop โดย คำสั่ง for
ผลที่ได้เอามาจะมี 3 คือ
('test', ['test1', 'test2'], [])
('test/test1', [], ['test.py', 'zipfolder.py'])
('test/test2', [], ['test.py', 'zipfolder.py'])

ค่า 3 ค่านี้อยู่ใน root, directories, files ของ loop ด้านล่าง

for root, directories, files in os.walk(directory):
benzas00123
PHP Super Member
PHP Super Member
Posts: 244
Joined: 06/01/2020 9:58 am

Re: ช่วยอธิบาย Code การ zip file หน่อยครับ

Post by benzas00123 »

ขอบคุณครับ
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - C/C++ & java & Python”

Who is online

Users browsing this forum: No registered users and 4 guests