Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การดำเนินการไฟล์ระดับสูงใน Python (shutil)


มีการกำหนดฟังก์ชันจำนวนหนึ่งสำหรับการดำเนินการระดับ hgh ในไฟล์และไดเร็กทอรีในโมดูล shutil ของไลบรารีมาตรฐานของ Python

คัดลอก()

ฟังก์ชันนี้คัดลอกไฟล์ไปยังไฟล์ที่ระบุในไดเร็กทอรีเดียวกันหรืออื่น พารามิเตอร์ตัวแรกของฟังก์ชันคือการแสดงสตริงของไฟล์ที่มีอยู่ อาร์กิวเมนต์ที่สองคือชื่อของไฟล์ผลลัพธ์หรือไดเร็กทอรี หากเป็นไดเร็กทอรี ไฟล์จะถูกจัดการด้วยชื่อเดียวกัน ข้อมูลเมตาของไฟล์ต้นฉบับไม่ได้รับการดูแล

>>> import shutil
>>> shutil.copy("hello.py","newdir/")
'newdir/hello.py'

copy2()

ฟังก์ชันนี้คล้ายกับฟังก์ชัน copy() เว้นแต่จะเก็บข้อมูลเมตาของไฟล์ต้นฉบับ ตัวอย่างเช่น วันที่แก้ไขคุณสมบัติของไฟล์ที่ได้จะคล้ายกับไฟล์ต้นฉบับ

>>> shutil.copy2('person.py', 'newdir/')
'newdir/person.py'

copyfile()

อาร์กิวเมนต์สตริงสองอาร์กิวเมนต์ของฟังก์ชันนี้แสดงถึงชื่อไฟล์ หมายความว่าไฟล์ต้นฉบับถูกคัดลอกโดยชื่อที่ระบุในไดเร็กทอรีเดียวกัน

>>> shutil.copyfile('start.py', 'end.py')
'end.py'

copyfileobj()

พารามิเตอร์ของฟังก์ชันนี้เป็นออบเจกต์ของไฟล์แทนที่จะเป็นสตริงที่แสดงถึงไฟล์ วัตถุไฟล์ได้มาจากฟังก์ชัน open() ไฟล์ต้นฉบับควรมีสิทธิ์ในการอ่านและไฟล์ที่ได้จะสามารถเปิดได้โดยมีสิทธิ์ในการเขียน

>>> f1=open('hello.py','r')
>>> f2=open('python.py','w')
>>> shutil.copyfileobj('f1', 'f2')
>>> shutil.copyfileobj(f1, f2)

ย้าย()

ฟังก์ชันนี้จะย้ายไฟล์และไดเร็กทอรีซ้ำๆ จากบนไดเร็กทอรีไปยังไดเร็กทอรีอื่น

>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'

copytree()

ฟังก์ชันนี้จะคัดลอกไฟล์และไดเร็กทอรีย่อยซ้ำๆ ในไดเร็กทอรีหนึ่งไปยังไดเร็กทอรีอื่น ชื่อของพารามิเตอร์สองตัวต้องเป็นสตริง ไดเรกทอรีของชื่อพารามิเตอร์ที่สองไม่ควรมีอยู่ก่อนหน้านี้ ในการคัดลอกไฟล์แต่ละไฟล์จะมีการใช้ฟังก์ชัน copy2() ภายใน

>>> shutil.copytree('dir1','dir2')
'dir2'

rmtree()

ฟังก์ชันนี้จะลบไฟล์และไดเร็กทอรีย่อยในไดเร็กทอรีที่ระบุ

>>> shutil.rmtree('dir2')
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'

disk_usage()

ฟังก์ชันนี้ดึงข้อมูลสถิติการใช้งานของไดเร็กทอรีที่ให้มา

>>> shutil.disk_usage('c:\\python36\\dir1')
usage(total=245681352704, used=84932993024, free=160748359680)

อันไหน()

ฟังก์ชันนี้จะคืนค่าพาธไปยังไฟล์สั่งการ

>>> shutil.which('calc')
'C:\\WINDOWS\\system32\\calc.EXE'

make_archive()

ฟังก์ชันนี้สร้างไฟล์เก็บถาวร (zip หรือ tar) ในไดเร็กทอรีราก

>>> root_dir='newdir'
>>> shutil.make_archive("newdirarch","zip",root_dir)
'C:\\python36\\newdirarch.zip'

get_archive_formats()

ฟังก์ชันนี้มีรูปแบบไฟล์เก็บถาวรที่รองรับทั้งหมด

>>> shutil.get_archive_formats()
[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]

unpack_archive()

ฟังก์ชันนี้จะแยกไฟล์ในไฟล์เก็บถาวรที่กำหนด พารามิเตอร์ที่สองคือไดเร็กทอรีที่จะแตกไฟล์ หากไม่ได้กำหนดไว้ การแตกไฟล์จะดำเนินการในไดเร็กทอรีปัจจุบัน

>>> shutil.unpack_archive('newdirarch.zip','newdir')