การนับจำนวนไฟล์ด้วยภาษา Python ลำดับแรก ให้อิมพอร์ตไลบรารี glob
เข้ามาในโปรเจ็กต์ก่อน แล้วเรียกใช้เมธอด glob1()
ซึ่งต้องการพารามิเตอร์ 2 ตัว มีรูปแบบการใช้งานดังนี้
glob.glob1(dirname, pattern)
dirname
คือชื่อไดเร็คทอรีเป้าหมาย (เช่น “files”)pattern
คือรูปแบบไฟล์ที่ต้องการตรวจสอบ (เช่น “*.docx”)
import glob
files = glob.glob1("files","*.*")
print(files)
- บรรทัดที่ 1 อิมพอร์ตไลบรารี
glob
- บรรทัดที่ 3 เรียกใช้เมธอด
glob1()
โดยให้ตรวจสอบที่ไดเร็คทอรี files (ถ้าต้องการตรวจสอบไดเร็คทอรีปัจจุบันให้กำหนดค่าว่าง""
) และให้ตรวจไฟล์ทุกประเภท ("*.*"
) - บรรทัดที่ 4 ให้แสดงรายการไฟล์ออกมา
ไดเร็คทอรีเป้าหมายมีไฟล์อยู่ 3 ไฟล์

ผลลัพธ์ ได้รายการไฟล์ทั้งหมดที่มีอยู่ในไดเร็คทอรีปลายทาง
[‘file2.rtf’, ‘file3.txt’, ‘file4.rar’]
ถ้าต้องการนับจำนวนไฟล์ ให้ใช้ฟังก์ชัน len()
import glob
files = glob.glob1("files","*.*")
print(len(files))
3
หรือจะใช้เมธอด glob()
ก็ได้ ดังตัวอย่าง
import glob
files = glob.glob("*.*")
print(files)
print("มีไฟล์ทั้งหมด : %s ไฟล์" % len(files))
- บรรทัดที่ 3 เรียกใช้เมธอด
glob()
โดยระบุอากิวเมนต์เป็น"*.*"
หมายความว่าให้ตรวจสอบทุกไฟล์ในไดเร็คทอรีปัจจุบัน
ไดเร็คทอรีปัจจุบัน มีไฟล์แค่ 2 ไฟล์

ผลลัพธ์
[‘file1.txt’, ‘main.py’]
มีไฟล์ทั้งหมด : 2 ไฟล์
ถ้าต้องการระบุไดเร็คทอรีปลายทาง ก็สามารถทำได้เช่นกัน
import glob
files = glob.glob("files/*.*")
print(files)
print("มีไฟล์ทั้งหมด : %s ไฟล์" % len(files))
- บรรทัดที่ 3 ให้ตรวจสอบไฟล์ทุกชนิดในไดเร็คทอรี files
ไดเร็คทอรี files มีไฟล์อยู่ 3 ไฟล์

ผลลัพธ์
[‘files\file2.rtf’, ‘files\file3.txt’, ‘files\file4.rar’]
มีไฟล์ทั้งหมด : 3 ไฟล์
ตรวจสอบไฟล์แบบ recursive
ถ้าต้องการตรวจสอบไฟล์แบบ recursive คือให้ตรวจสอบไฟล์ในไดเร็คทอรีย่อยลงไปด้วย ให้กำหนดอากิวเมนต์ในรูปแบบดังนี้
glob.glob("**/*.*", recursive=True)
หรือ glob.glob("dirname/**/*.*", recursive=True)
import glob
files = glob.glob("**/*.*", recursive=True)
print(files)
print("มีไฟล์ทั้งหมด : %s ไฟล์" % len(files))
- บรรทัดที่ 3 กำหนดอากิวเมนต์ตัวแรกเป็น
"**/*.*"
หมายถึง ให้ตรวจสอบทุกไฟล์ที่อยู่ในไดเร็คทอรีปัจจุบันและไดเร็คทอรีย่อยลงไปทุกระดับ
ผลลัพธ์
[‘file1.txt’, ‘main.py’, ‘files\file2.rtf’, ‘files\file3.txt’, ‘files\file4.rar’, ‘files\xx\file5.txt’, ‘files\xx\file6.vsdx’, ‘files\xx\file7.rtf’, ‘files\xx\file8.txt’, ‘files\xx\ee\file10.rtf’, ‘files\xx\ee\file11.txt’, ‘files\xx\ee\file9.txt’]
มีไฟล์ทั้งหมด : 12 ไฟล์
import glob
files = glob.glob("files/**/*.*", recursive=True)
print(files)
print("มีไฟล์ทั้งหมด : %s ไฟล์" % len(files))
- บรรทัดที่ 3 กำหนดอากิวเมนต์ตัวแรกเป็น
"files/**/*.*"
หมายถึง ให้ตรวจสอบทุกไฟล์ที่อยู่ในไดเร็คทอรี files และไดเร็คทอรีย่อยลงไปทุกระดับ
ผลลัพธ์
[‘files\file2.rtf’, ‘files\file3.txt’, ‘files\file4.rar’, ‘files\xx\file5.txt’, ‘files\xx\file6.vsdx’, ‘files\xx\file7.rtf’, ‘files\xx\file8.txt’, ‘files\xx\ee\file10.rtf’, ‘files\xx\ee\file11.txt’, ‘files\xx\ee\file9.txt’]
มีไฟล์ทั้งหมด : 10 ไฟล์