วิธี scandir ของโมดูล os

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

ไวยากรณ์

pythonimport os

os.scandir(พาธไปยังไดเรกทอรี)

ตัวอย่าง

มาดูโครงสร้างของไดเรกทอรีของเรากัน:

pythonimport os

print(os.scandir('dir'))

ผลลัพธ์จากการรันโค้ดเราจะได้ ออบเจ็กต์ os.DirEntry:

python<nt.ScandirIterator object at 0x000001478707FF00>

ตัวอย่าง

ทีนี้มาวนลูปออบเจ็กต์ที่ได้กัน ด้วยลูป เพื่อที่จะปล่อยทรัพยากร ของระบบหลังจากลูปเสร็จสิ้น จำเป็นต้อง ปิดการวนลูปด้วยเมธอด close():

pythonimport os

for file in os.scandir('dir'):
  print(file)

os.scandir('dir').close()

ผลลัพธ์ของการรันโค้ด:

python<DirEntry 'dir1'>
<DirEntry 'file1.txt'>
<DirEntry 'file2.txt'>

ตัวอย่าง

นอกจากนี้เรายังสามารถแสดงแค่ชื่อไฟล์ โดยใช้แอตทริบิวต์ name กับออบเจ็กต์ที่ได้:

pythonimport os

for file in os.scandir('dir'):
  print(file.name)

os.scandir('dir').close()

ผลลัพธ์ของการรันโค้ด:

pythondir1
file1.txt
file2.txt

ดูเพิ่มเติม

  • ออบเจ็กต์ DirEntry ของโมดูล os,
    ซึ่งบรรจุ ไฟล์และโฟลเดอร์ย่อยที่สามารถวนลูปได้
  • เมธอด getcwd ของโมดูล os,
    ซึ่งคืนค่า ไดเรกทอรีการทำงานปัจจุบัน
  • เมธอด makedirs ของโมดูล os,
    ซึ่งสร้าง ไดเรกทอรี
  • เมธอด rmtree ของโมดูล shutil,
    ซึ่งลบ โฟลเดอร์แบบเรียกซ้ำ
  • เมธอด copytree ของโมดูล shutil,
    ซึ่งคัดลอก โฟลเดอร์แบบเรียกซ้ำ
  • เมธอด path.join ของโมดูล os,
    ซึ่งรวม พาธ