วิธี scandir ของโมดูล os
เมธอด scandir ใช้สำหรับวนลูปไฟล์และ
โฟลเดอร์ย่อยที่อยู่ในโฟลเดอร์ ใน
พารามิเตอร์ของเมธอดเราระบุพาธไปยังโฟลเดอร์ เมธอด
คืนค่าออบเจ็กต์ os.DirEntry
ไวยากรณ์
import os
os.scandir(พาธไปยังไดเรกทอรี)
ตัวอย่าง
มาดูโครงสร้างของไดเรกทอรีของเรากัน:
import os
print(os.scandir('dir'))
ผลลัพธ์จากการรันโค้ดเราจะได้
ออบเจ็กต์ os.DirEntry:
<nt.ScandirIterator object at 0x000001478707FF00>
ตัวอย่าง
ทีนี้มาวนลูปออบเจ็กต์ที่ได้กัน
ด้วยลูป เพื่อที่จะปล่อยทรัพยากร
ของระบบหลังจากลูปเสร็จสิ้น จำเป็นต้อง
ปิดการวนลูปด้วยเมธอด close():
import os
for file in os.scandir('dir'):
print(file)
os.scandir('dir').close()
ผลลัพธ์ของการรันโค้ด:
<DirEntry 'dir1'>
<DirEntry 'file1.txt'>
<DirEntry 'file2.txt'>
ตัวอย่าง
นอกจากนี้เรายังสามารถแสดงแค่ชื่อไฟล์
โดยใช้แอตทริบิวต์ name กับออบเจ็กต์ที่ได้:
import os
for file in os.scandir('dir'):
print(file.name)
os.scandir('dir').close()
ผลลัพธ์ของการรันโค้ด:
dir1
file1.txt
file2.txt
ดูเพิ่มเติม
-
ออบเจ็กต์
DirEntryของโมดูลos,
ซึ่งบรรจุ ไฟล์และโฟลเดอร์ย่อยที่สามารถวนลูปได้ -
เมธอด
getcwdของโมดูลos,
ซึ่งคืนค่า ไดเรกทอรีการทำงานปัจจุบัน -
เมธอด
makedirsของโมดูลos,
ซึ่งสร้าง ไดเรกทอรี -
เมธอด
rmtreeของโมดูลshutil,
ซึ่งลบ โฟลเดอร์แบบเรียกซ้ำ -
เมธอด
copytreeของโมดูลshutil,
ซึ่งคัดลอก โฟลเดอร์แบบเรียกซ้ำ -
เมธอด
path.joinของโมดูลos,
ซึ่งรวม พาธ