Python मा फाइलनाम प्राप्त गर्ने तरिका | os, pathlib मोड्युल

目次

1. परिचय

Python फाइल अपरेसनमा अत्यन्त लचिलो छ, र सरल कोडले धेरै कामहरू स्वचालित गर्न सक्छ। यस लेखमा, Python प्रयोग गरेर「फाइलनाम प्राप्त गर्ने」विधिहरू केही प्रस्तुत गरिनेछ। विशेष गरी, मानक पुस्तकालय os मोड्युल र pathlib मोड्युललाई केन्द्रित गरी व्याख्या गरिनेछ। यो लेख पढेर, तपाईंले डाइरेक्टरीभित्रका फाइलहरूलाई प्रभावकारी रूपमा ह्यान्डल गर्न, फाइलनाम प्राप्त गर्न र फिल्टरिङ्ग गर्ने स्क्रिप्ट बनाउने कौशल हासिल गर्न सक्नुहुनेछ।

2. Python मा फाइलनाम प्राप्त गर्ने आधारभूत विधि

पहिले, Python मा फाइलनाम प्राप्त गर्ने आधारभूत विधि बाट सुरु गरौं。os.path.basename() फङ्क्शन प्रयोग गरेर, निर्दिष्ट पथबाट फाइलनाम प्राप्त गर्न सकिन्छ。

2.1 os.path.basename() को प्रयोग

os.path.basename() पूर्ण पथबाट फाइलनाम मात्र प्राप्त गर्ने फङ्क्शन हो। तलको उदाहरणमा, फाइल पथबाट फाइलनाम निकालिन्छ。
import os

file_path = "/user/home/document/file.txt"
file_name = os.path.basename(file_path)
print(file_name)  # नतिजा: "file.txt"

2.2 os.path.dirname() द्वारा डाइरेक्टरी नाम प्राप्त गर्नु

त्यस्तै गरी, os.path.dirname() प्रयोग गर्दा, फाइल पथबाट डाइरेक्टरी नाम प्राप्त गर्न सकिन्छ। यसले फाइलनाम र डाइरेक्टरी नामलाई अलग्गै प्राप्त गर्न सम्भव बनाउँछ।
dir_name = os.path.dirname(file_path)
print(dir_name)  # नतिजा: "/user/home/document"

3. डाइरेक्टरीभित्रका सबै फाइलनामहरू प्राप्त गर्ने

डाइरेक्टरीभित्र रहेका सबै फाइलहरू र फोल्डरहरूलाई सूची स्वरूपमा प्राप्त गर्न os.listdir() उपयोगी छ। साथै, सबडाइरेक्टरीभित्रका फाइलहरूलाई पुनरावृत्त रूपमा प्राप्त गर्न os.walk() सहयोगी हुन्छ।

3.1 os.listdir() प्रयोग गरेर फाइलनामको प्राप्ति

os.listdir() प्रयोग, निर्दिष्ट डाइरेक्टरीभित्रका सबै फाइल र फोल्डरलाई सूचीमा प्राप्त गर्न सकिन्छ। साधारण डाइरेक्टरी अपरेसनका लागि उपयुक्त छ।
import os

dir_path = "/user/home/document"
files = os.listdir(dir_path)
print(files)  # परिणाम: ["file1.txt", "file2.txt", "subfolder"]

3.2 os.walk() द्वारा पुनरावृत्त रूपमा फाइलनाम प्राप्त गर्ने

सबडाइरेक्टरीहरू समेत फाइलहरूलाई पुनरावृत्त रूपमा प्राप्त गर्न चाहनुहुन्छ भने, os.walk() प्रयोग गर्नु सबैभन्दा प्रभावकारी हुन्छ। तलको कोडले निर्दिष्ट डाइरेक्टरी र त्यसका सबडाइरेक्टरीहरूमा रहेका सबै फाइलहरूलाई सूचीबद्ध गर्दछ।
import os

dir_path = "/user/home/document"
for root, dirs, files in os.walk(dir_path):
    for file in files:
        print(os.path.join(root, file))

3.3 त्रुटि ह्यान्डलिंगको थप

डाइरेक्टरी अवस्थित नभएमा वा पहुँच अधिकार नहुनुमा त्रुटि उत्पन्न हुन सक्छ। त्यसैले, try-except प्रयोग गरेर अपवाद प्रक्रिया थप्न सिफारिस गरिन्छ।
dir_path = "/invalid/path"
try:
    files = os.listdir(dir_path)
    print(files)
except FileNotFoundError:
    print(f"{dir_path} फेला परेन।")

4. एक्स्टेन्सन प्राप्ति र परिवर्तन

फाइलनाम प्राप्त गर्दा, एक्स्टेन्सनको सञ्चालन पनि आवश्यक पर्न सक्छ।os.path.splitext() प्रयोग गरेर, एक्स्टेन्सनलाई अलग गर्न वा परिवर्तन गर्न सम्भव हुन्छ।

4.1 os.path.splitext() द्वारा एक्स्टेन्सन प्राप्त गर्नुहोस्

os.path.splitext() फाइलनाम र एक्स्टेन्सनलाई अलग गरेर फिर्ता गर्ने फंक्शन हो।
import os

file_path = "/user/home/document/file.txt"
file_name, file_ext = os.path.splitext(file_path)
print(file_name)  # परिणाम: "/user/home/document/file"
print(file_ext)   # परिणाम: ".txt"

4.2 एक्स्टेन्सन परिवर्तन गर्नुहोस्

एक्स्टेन्सन परिवर्तन गर्दा, os.path.splitext() द्वारा प्राप्त फाइलनाममा नयाँ एक्स्टेन्सन थपिन्छ।
new_file_path = file_name + ".jpg"
print(new_file_path)  # परिणाम: "/user/home/document/file.jpg"
侍エンジニア塾

5. pathlib मोड्युल प्रयोग गरेर फाइलनाम प्राप्तिको अनुप्रयोग

Python 3.4 पछि, pathlib मोड्युल फाइल पाथको सञ्चालनमा अत्यन्त उपयोगी छ। pathlib वस्तु-उन्मुख तरिकाले फाइल पाथलाई सञ्चालन गर्न सक्छ, जसले अधिक सहज प्रयोग सम्भव बनाउँछ।

5.1 Path.iterdir() प्रयोग गरेर फाइलनाम प्राप्ति

pathlib.Path() को iterdir() मेथड प्रयोग गर्दा, निर्दिष्ट गरिएको डाइरेक्टरीभित्रको फाइलनाम र फोल्डरनाम प्राप्त गर्न सकिन्छ।
from pathlib import Path

dir_path = Path("/user/home/document")
for item in dir_path.iterdir():
    print(item.name)

5.2 पुनरावृत्त फाइल प्राप्ति: rglob()

सबडाइरेक्टरीहरू समेत समेटी पुनरावृत्त रूपमा फाइलनाम प्राप्त गर्न चाहनुहुन्छ भने, rglob() मेथड प्रयोग गर्नुहोस्। यो os.walk() को विकल्पको रूपमा पनि प्रयोग गर्न सकिन्छ।
for file in dir_path.rglob("*"):
    print(file)

6. फाइलनामको फिल्टरिङ

यदि तपाईंले निश्चित शर्तहरूलाई मिल्ने फाइलनाम मात्र प्राप्त गर्न चाहनुहुन्छ भने, glob मोड्युल वा pathlib को glob() मेथड प्रयोग गरेर फिल्टरिङ गर्न सकिन्छ।

6.1 एक्स्टेन्सन द्वारा फिल्टरिङ

निर्दिष्ट एक्स्टेन्सन भएको फाइल मात्र प्राप्त गर्न, वाइल्डकार्ड * प्रयोग गर्नुहोस्।
from pathlib import Path

dir_path = Path("/user/home/document")
for file in dir_path.glob("*.txt"):
    print(file)
यो कोडले निर्दिष्ट गरिएको डाइरेक्टरीभित्रको .txt फाइल मात्र प्राप्त गर्दछ।

7. सारांश

Python प्रयोग गरेर फाइलनाम प्राप्त गर्ने विभिन्न तरिकाहरू छन्, तर प्रयोगको आधारमा उपयुक्त विधि चयन गर्नु महत्त्वपूर्ण छ。os मोड्युलको आधारभूत कार्यहरूबाट、pathlibको उन्नत सुविधासम्म प्रयोग गरेमा、डाइरेक्टरीभित्रको फाइलहरूलाई प्रभावकारी रूपमा प्रक्रिया गर्न सकिन्छ।अर्को पटक、फाइल अपरेसनको प्रयोगको रूपमा、फाइलको पुनःनामकरण、स्थानान्तरण、र मेटाउने सम्बन्धी जानकारी प्रदान गर्नेछौं。
年収訴求