പൈത്തൺ: ഒരു ഡയറക്ടറിയിൽ നിന്ന് ഒരു ലിസ്റ്റിലേക്ക് എല്ലാ ഫയലുകളും ലിസ്റ്റുചെയ്യുകയും ചേർക്കുകയും ചെയ്യുന്നു

പൈത്തൺ: ഒരു ഡയറക്ടറിയിൽ നിന്ന് ഒരു ലിസ്റ്റിലേക്ക് എല്ലാ ഫയലുകളും ലിസ്റ്റുചെയ്യുകയും ചേർക്കുകയും ചെയ്യുന്നു
Python

പൈത്തണിൽ ഫയൽ മാനേജ്മെൻ്റ് കണ്ടെത്തുന്നു

പ്രോഗ്രാമിംഗിൽ ഡയറക്‌ടറികളും ഫയലുകളും ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നത് ഒരു സാധാരണ ജോലിയാണ്. പൈത്തണിൽ, ഒരു ഡയറക്‌ടറിക്കുള്ളിൽ എല്ലാ ഫയലുകളും ലിസ്റ്റുചെയ്യുന്നതിനും കൂടുതൽ പ്രോസസ്സിംഗിനായി അവ ഒരു ലിസ്റ്റിൽ സൂക്ഷിക്കുന്നതിനും നിരവധി രീതികളുണ്ട്.

കോഡ് ഉദാഹരണങ്ങളും വിശദീകരണങ്ങളും നൽകിക്കൊണ്ട് ഈ ലേഖനം ഇത് നേടുന്നതിനുള്ള കാര്യക്ഷമമായ വഴികൾ പര്യവേക്ഷണം ചെയ്യും. നിങ്ങളൊരു തുടക്കക്കാരനായാലും പരിചയസമ്പന്നനായ പ്രോഗ്രാമറായാലും, പൈത്തണിൽ നിങ്ങളുടെ ഫയൽ മാനേജ്മെൻ്റ് ജോലികൾ കാര്യക്ഷമമാക്കാൻ ഈ ടെക്നിക്കുകൾ സഹായിക്കും.

കമാൻഡ് വിവരണം
os.listdir(directory) നിർദ്ദിഷ്ട ഡയറക്‌ടറിയിലെ എൻട്രികളുടെ പേരുകൾ അടങ്ങുന്ന ഒരു ലിസ്റ്റ് നൽകുന്നു.
os.path.isfile(path) നിർദ്ദിഷ്ട പാത്ത് നിലവിലുള്ള ഒരു സാധാരണ ഫയലാണോ എന്ന് പരിശോധിക്കുന്നു.
os.path.join(path, *paths) ഒന്നോ അതിലധികമോ പാത്ത് ഘടകങ്ങളുമായി ബുദ്ധിപരമായി ചേരുന്നു, ഒരൊറ്റ പാത തിരികെ നൽകുന്നു.
Path(directory).iterdir() നിർദ്ദിഷ്‌ട ഡയറക്‌ടറിയിലെ എല്ലാ ഫയലുകളുടെയും ഉപ ഡയറക്‌ടറികളുടെയും ഒരു ഇറ്ററേറ്റർ നൽകുന്നു.
file.is_file() പാത്ത് ഒരു സാധാരണ ഫയലോ ഫയലിലേക്കുള്ള പ്രതീകാത്മക ലിങ്കോ ആണെങ്കിൽ ശരിയാണെന്ന് നൽകുന്നു.
os.walk(directory) ഒരു ഡയറക്‌ടറി ട്രീയിൽ ഫയൽ നാമങ്ങൾ ജനറേറ്റുചെയ്യുന്നു, ഒന്നുകിൽ മുകളിൽ നിന്ന് താഴേക്കോ താഴേക്കോ നടക്കുന്നു.

പൈത്തൺ ഡയറക്‌ടറി ട്രാവെർസൽ മനസ്സിലാക്കുന്നു

മുകളിൽ നൽകിയിരിക്കുന്ന സ്ക്രിപ്റ്റുകൾ പൈത്തൺ ഉപയോഗിച്ച് ഒരു ഡയറക്‌ടറിയിലെ എല്ലാ ഫയലുകളും ലിസ്റ്റുചെയ്യുന്നതിനുള്ള വ്യത്യസ്ത രീതികൾ ചിത്രീകരിക്കുന്നു. ആദ്യ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നു os മൊഡ്യൂൾ, ഇത് പൈത്തണിലെ ഒരു ബിൽറ്റ്-ഇൻ മൊഡ്യൂളാണ്, അത് ഓപ്പറേറ്റിംഗ് സിസ്റ്റം-ആശ്രിത പ്രവർത്തനം ഉപയോഗിക്കുന്നതിനുള്ള ഒരു മാർഗ്ഗം നൽകുന്നു. ഉപയോഗിച്ച് os.listdir(directory), നിർദ്ദിഷ്‌ട ഡയറക്‌ടറിയിലെ എല്ലാ എൻട്രികളുടെയും ഒരു ലിസ്റ്റ് നമുക്ക് ലഭിക്കും. തുടർന്ന്, ഈ എൻട്രികളിലൂടെ ആവർത്തിച്ച് ഓരോന്നും പരിശോധിച്ചുകൊണ്ട് os.path.isfile(path), നമുക്ക് ഡയറക്‌ടറികൾ ഫിൽട്ടർ ചെയ്യാനും ഞങ്ങളുടെ ലിസ്റ്റിലേക്ക് ഫയലുകൾ മാത്രം ചേർക്കാനും കഴിയും. രണ്ടാമത്തെ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നു pathlib മൊഡ്യൂൾ, ഫയൽസിസ്റ്റം പാതകളിലേക്ക് കൂടുതൽ ഒബ്ജക്റ്റ്-ഓറിയൻ്റഡ് സമീപനം വാഗ്ദാനം ചെയ്യുന്നു. ഉപയോഗിച്ച് Path(directory).iterdir(), ഡയറക്‌ടറിയിലെ എല്ലാ എൻട്രികളുടെയും ഒരു ഇറ്ററേറ്റർ നമുക്ക് ലഭിക്കും, കൂടാതെ ഇവ ഫിൽട്ടർ ചെയ്യുന്നതിലൂടെയും file.is_file(), നമുക്ക് ഫയലുകൾ മാത്രമേ ശേഖരിക്കാനാകൂ.

സബ്ഡയറക്‌ടറികളിലെ ഫയലുകൾ ഉൾപ്പെടെ കൂടുതൽ സമഗ്രമായ ഫയൽ ലിസ്റ്റിംഗിനായി മൂന്നാം സ്‌ക്രിപ്റ്റ് രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു. അത് ഉപയോഗിക്കുന്നു os.walk(directory), നിർദ്ദിഷ്ട ഡയറക്‌ടറിയിൽ റൂട്ട് ചെയ്‌തിരിക്കുന്ന ട്രീയിലെ ഓരോ ഡയറക്‌ടറിക്കുമുള്ള ഡയറക്‌ടറി പാത, ഉപഡയറക്‌ടറികൾ, ഫയൽനാമങ്ങൾ എന്നിവയുടെ ഒരു ടപ്പിൾ നൽകുന്ന ഒരു ജനറേറ്റർ. ഡയറക്‌ടറി ട്രീയിലൂടെ ആവർത്തിച്ച് സഞ്ചരിക്കാനും എല്ലാ ഫയൽനാമങ്ങളും ശേഖരിക്കാനും ഇത് ഞങ്ങളെ അനുവദിക്കുന്നു. ഈ സ്‌ക്രിപ്റ്റുകൾ പൈത്തണിലെ ഡയറക്‌ടറി ട്രാവെർസൽ കൈകാര്യം ചെയ്യുന്നതിനുള്ള കാര്യക്ഷമമായ വഴികൾ പ്രകടമാക്കുന്നു, ഇത് രണ്ട് ലാളിത്യവും വാഗ്ദാനം ചെയ്യുന്നു. os ഒപ്പം മെച്ചപ്പെടുത്തിയ പ്രവർത്തനക്ഷമതയും pathlib. ഈ കമാൻഡുകളും രീതികളും മനസ്സിലാക്കുന്നത് ഫയൽ മാനേജ്മെൻ്റ് ടാസ്ക്കുകൾക്ക് നിർണായകമാണ്, ഒരു ഡയറക്ടറി ഘടനയിൽ ഫയലുകൾ ശരിയായി തിരിച്ചറിയുകയും പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു.

പൈത്തണിൻ്റെ ഒഎസ് മൊഡ്യൂൾ ഉപയോഗിച്ച് ഒരു ഡയറക്ടറിയിൽ ഫയലുകൾ ലിസ്റ്റുചെയ്യുന്നു

ഡയറക്‌ടറി ട്രാവെർസലിനായി os മൊഡ്യൂൾ ഉപയോഗിക്കുന്നു

import os

def list_files_os(directory):
    files = []
    for filename in os.listdir(directory):
        if os.path.isfile(os.path.join(directory, filename)):
            files.append(filename)
    return files

# Example usage
directory_path = '/path/to/directory'
files_list = list_files_os(directory_path)
print(files_list)

പൈത്തണിൻ്റെ പാത്ത്‌ലിബ് മൊഡ്യൂൾ ഉപയോഗിച്ച് ഡയറക്ടറി ഉള്ളടക്കങ്ങൾ ലഭ്യമാക്കുന്നു

ഫയൽ ലിസ്റ്റിംഗിനായി പാത്ത്‌ലിബ് മൊഡ്യൂൾ ഉപയോഗിക്കുന്നു

from pathlib import Path

def list_files_pathlib(directory):
    return [str(file) for file in Path(directory).iterdir() if file.is_file()]

# Example usage
directory_path = '/path/to/directory'
files_list = list_files_pathlib(directory_path)
print(files_list)

os.walk ഉപയോഗിച്ചുള്ള ആവർത്തന ഫയൽ ലിസ്റ്റിംഗ്

ആവർത്തന ഡയറക്‌ടറി ട്രാവെർസലിനായി os.walk ഉപയോഗിക്കുന്നു

import os

def list_files_recursive(directory):
    files = []
    for dirpath, _, filenames in os.walk(directory):
        for filename in filenames:
            files.append(os.path.join(dirpath, filename))
    return files

# Example usage
directory_path = '/path/to/directory'
files_list = list_files_recursive(directory_path)
print(files_list)

പൈത്തണിലെ വിപുലമായ ഫയൽ ലിസ്റ്റിംഗ് ടെക്നിക്കുകൾ

ഒരു ഡയറക്‌ടറിയിൽ ഫയലുകൾ ലിസ്റ്റുചെയ്യുന്നതിനുള്ള അടിസ്ഥാന രീതികൾക്കപ്പുറം os ഒപ്പം pathlib മൊഡ്യൂളുകൾ, പ്രത്യേക ജോലികൾക്കായി ഉപയോഗിക്കാവുന്ന കൂടുതൽ നൂതന സാങ്കേതിക വിദ്യകൾ ഉണ്ട്. അത്തരം ഒരു രീതി ഉപയോഗിക്കുന്നു glob Unix ഷെൽ ഉപയോഗിക്കുന്ന നിയമങ്ങൾക്കനുസൃതമായി ഒരു നിർദ്ദിഷ്ട പാറ്റേണുമായി പൊരുത്തപ്പെടുന്ന എല്ലാ പാത്ത്നെയിമുകളും കണ്ടെത്തുന്ന മൊഡ്യൂൾ. പ്രത്യേക വിപുലീകരണങ്ങളോ പാറ്റേണുകളോ ഉള്ള ഫയലുകൾ ലിസ്റ്റുചെയ്യുന്നതിന് ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാകും. ഉദാഹരണത്തിന്, ഉപയോഗിക്കുന്നത് glob.glob('*.txt') നിലവിലെ ഡയറക്‌ടറിയിലെ എല്ലാ ടെക്‌സ്‌റ്റ് ഫയലുകളും ലിസ്റ്റ് ചെയ്യും. ഡയറക്‌ടറി എൻട്രികളിലൂടെ സ്വമേധയാ ആവർത്തിക്കാതെ തന്നെ ഫയലുകൾ അവയുടെ പേരുകൾ അല്ലെങ്കിൽ വിപുലീകരണങ്ങൾ എന്നിവയെ അടിസ്ഥാനമാക്കി ഫിൽട്ടർ ചെയ്യുന്നതിനുള്ള ഒരു ഫ്ലെക്സിബിൾ മാർഗം ഈ രീതി നൽകുന്നു.

മറ്റൊരു നൂതന സാങ്കേതികത പ്രയോജനപ്പെടുത്തുക എന്നതാണ് fnmatch Unix-ശൈലിയിലുള്ള ഗ്ലോബ് പാറ്റേണുകളുമായി ഫയൽനാമങ്ങൾ താരതമ്യം ചെയ്യുന്നതിനുള്ള ഫംഗ്ഷനുകൾ നൽകുന്ന മൊഡ്യൂൾ. ഇതുമായി ചേർന്ന് ഉപയോഗിക്കാം os.listdir() അഥവാ pathlib കൂടുതൽ സങ്കീർണ്ണമായ പാറ്റേണുകളെ അടിസ്ഥാനമാക്കി ഫയലുകൾ ഫിൽട്ടർ ചെയ്യാൻ. ഉദാഹരണത്തിന്, fnmatch.filter(os.listdir(directory), '*.py') നിർദ്ദിഷ്ട ഡയറക്‌ടറിയിലെ എല്ലാ പൈത്തൺ ഫയലുകളുടെയും ഒരു ലിസ്റ്റ് തിരികെ നൽകും. കൂടാതെ, വലിയ ഡാറ്റാസെറ്റുകൾക്കോ ​​പെർഫോമൻസ് നിർണായക ആപ്ലിക്കേഷനുകൾക്കോ ​​ഉപയോഗിക്കുന്നു scandir നിന്ന് os മൊഡ്യൂളിനേക്കാൾ കൂടുതൽ കാര്യക്ഷമമാകും listdir ഇത് ഫയൽ പേരുകൾക്കൊപ്പം ഫയൽ ആട്രിബ്യൂട്ടുകൾ വീണ്ടെടുക്കുന്നതിനാൽ, സിസ്റ്റം കോളുകളുടെ എണ്ണം കുറയ്ക്കുന്നു. ഈ നൂതന സാങ്കേതിക വിദ്യകൾ മനസ്സിലാക്കുന്നത് പൈത്തണിൽ കൂടുതൽ ശക്തവും വഴക്കമുള്ളതുമായ ഫയൽ മാനേജ്മെൻ്റ് സൊല്യൂഷനുകൾ അനുവദിക്കുന്നു.

പൈത്തണിലെ ഡയറക്ടറി ലിസ്റ്റിംഗിനെക്കുറിച്ച് പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ

  1. ഒരു ഡയറക്‌ടറിയിലെയും അതിൻ്റെ ഉപഡയറക്‌ടറികളിലെയും എല്ലാ ഫയലുകളും എങ്ങനെ ലിസ്റ്റ് ചെയ്യാം?
  2. ഉപയോഗിക്കുക os.walk(directory) ഡയറക്ടറി ട്രീയിലൂടെ സഞ്ചരിക്കാനും എല്ലാ ഫയലുകളും ലിസ്റ്റുചെയ്യാനും.
  3. ഒരു നിർദ്ദിഷ്‌ട വിപുലീകരണമുള്ള ഫയലുകൾ എനിക്ക് എങ്ങനെ ലിസ്റ്റ് ചെയ്യാം?
  4. ഉപയോഗിക്കുക glob.glob('*.extension') അഥവാ fnmatch.filter(os.listdir(directory), '*.extension').
  5. എന്താണ് തമ്മിലുള്ള വ്യത്യാസം os.listdir() ഒപ്പം os.scandir()?
  6. os.scandir() ഫയൽ പേരുകൾക്കൊപ്പം ഫയൽ ആട്രിബ്യൂട്ടുകൾ വീണ്ടെടുക്കുന്നതിനാൽ ഇത് കൂടുതൽ കാര്യക്ഷമമാണ്.
  7. എനിക്ക് ഒരു ഡയറക്ടറിയിൽ മറഞ്ഞിരിക്കുന്ന ഫയലുകൾ ലിസ്റ്റ് ചെയ്യാൻ കഴിയുമോ?
  8. അതെ, ഉപയോഗിക്കുന്നു os.listdir() മറഞ്ഞിരിക്കുന്ന ഫയലുകൾ ലിസ്റ്റ് ചെയ്യും (ഒരു ഡോട്ടിൽ തുടങ്ങുന്നവ).
  9. ലിസ്റ്റിൽ നിന്ന് ഡയറക്ടറികൾ എങ്ങനെ ഒഴിവാക്കാം?
  10. ഉപയോഗിക്കുക os.path.isfile() അഥവാ file.is_file() കൂടെ pathlib ഫയലുകൾ മാത്രം ഫിൽട്ടർ ചെയ്യാൻ.
  11. ഫയലുകളുടെ ലിസ്റ്റ് അടുക്കാൻ കഴിയുമോ?
  12. അതെ, നിങ്ങൾക്ക് ഉപയോഗിക്കാം sorted() ഫയലുകളുടെ ലിസ്റ്റിലെ പ്രവർത്തനം.
  13. വലിയ ഡയറക്ടറികൾ എങ്ങനെ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യാം?
  14. ഉപയോഗിക്കുക os.scandir() വലിയ ഡയറക്ടറികൾക്കൊപ്പം മികച്ച പ്രകടനത്തിന്.
  15. ഫയൽ വലുപ്പവും പരിഷ്ക്കരണ തീയതിയും എനിക്ക് ലഭിക്കുമോ?
  16. അതെ, ഉപയോഗിക്കുക os.stat() അഥവാ Path(file).stat() ഫയൽ മെറ്റാഡാറ്റ വീണ്ടെടുക്കാൻ.
  17. ക്രോസ്-പ്ലാറ്റ്ഫോം അനുയോജ്യതയ്ക്ക് ഏറ്റവും മികച്ച മൊഡ്യൂളുകൾ ഏതാണ്?
  18. ദി pathlib മെച്ചപ്പെട്ട ക്രോസ്-പ്ലാറ്റ്ഫോം അനുയോജ്യതയ്ക്കായി മൊഡ്യൂൾ ശുപാർശ ചെയ്യുന്നു.
  19. ഡയറക്‌ടറികൾ മാത്രം ലിസ്റ്റ് ചെയ്യുന്നതെങ്ങനെ?
  20. ഉപയോഗിക്കുക os.path.isdir() അഥവാ Path(file).is_dir() ഡയറക്ടറികൾ ഫിൽട്ടർ ചെയ്യാൻ.

പൈത്തണിലെ ഡയറക്‌ടറി ലിസ്റ്റിംഗ് പൊതിയുന്നു

ഉപസംഹാരമായി, ഒരു ഡയറക്‌ടറിക്കുള്ളിൽ ഫയലുകൾ ലിസ്റ്റുചെയ്യുന്നതിന് പൈത്തൺ ഒന്നിലധികം വഴികൾ വാഗ്ദാനം ചെയ്യുന്നു, ഇത് ഉപയോഗിക്കുന്ന അടിസ്ഥാന രീതികൾ മുതൽ os ഒപ്പം pathlib ഉൾപ്പെടുന്ന കൂടുതൽ വിപുലമായ സാങ്കേതികതകളിലേക്കുള്ള മൊഡ്യൂളുകൾ glob ഒപ്പം fnmatch. ഓരോ രീതിക്കും അതിൻ്റേതായ ഗുണങ്ങളുണ്ട്, ഇത് വ്യത്യസ്ത ഉപയോഗത്തിന് അനുയോജ്യമാക്കുന്നു. ഈ ടെക്‌നിക്കുകൾ മനസ്സിലാക്കുന്നത് ഫയൽ മാനേജ്‌മെൻ്റ് ടാസ്‌ക്കുകൾ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യാനുള്ള നിങ്ങളുടെ കഴിവ് വർദ്ധിപ്പിക്കുന്നു, നിങ്ങളുടെ അപ്ലിക്കേഷന് ആവശ്യമായ ഫയലുകൾ കൃത്യമായി ലിസ്റ്റ് ചെയ്യാനും പ്രോസസ്സ് ചെയ്യാനും കഴിയുമെന്ന് ഉറപ്പാക്കുന്നു.