És molt possible que ens hem trobat amb tants casos a la nostra vida en què volem saber quants i quins fitxers hi ha en un directori (carpeta). O, de vegades hem de buscar un fitxer, i sabem el seu nom, però no sabem en quina carpeta està present. En aquest cas, l'única opció que ens queda és buscar el fitxer al directori de destinació.
Ara, semblaria tan fàcil per a molts de nosaltres pensar; només hem d'anar al directori i mirar-hi. Aquesta és una opció possible, però aquesta opció només funcionarà quan només tinguem un nombre menor de fitxers presents en aquest directori. Només llavors podrem visitar aquest directori manualment i buscar els fitxers que hi ha. Però, què en el cas que hi hagi un gran nombre d'arxius, diguem només milers de fitxers presents al directori de destinació. En aquest cas, aquesta opció no funcionarà perquè trigarà molt de temps (fins i tot molts dies) a cercar si hi ha un fitxer específic al directori de destinació on hi ha milers de fitxers. Sembla el que hauríem de fer si hem de trobar un fitxer amb el seu nom dins d'un directori amb milers de fitxers.
Podem cercar el nom mitjançant l'explorador de fitxers, però si ho fem, també trigarà molt de temps, no com en l'opció anterior, però sí, molt de temps. Això es deu al fet que l'explorador de fitxers escanejarà tots els fitxers presents al directori i haurem d'esperar molt fins que es faci una exploració completa del disc.
Però què passa si diem que ja hem proporcionat els noms de tots els fitxers presents al directori o camí de destinació. Aleshores, ens serà molt fàcil comprovar si aquest fitxer especificat està present al camí de destinació, i també mostra on hem d'obtenir els noms de tots els fitxers presents al directori de destinació.
Si ens donen una llista de noms de tots els fitxers presents en un directori en forma de text, només hem d'escriure el nom d'aquest fitxer específic a la barra de cerca. I, aleshores, amb prou feines trigarà un segon a esbrinar si el fitxer està present a la llista de noms o no. Així, podem entendre que tan important és tenir un mètode on puguem imprimir la llista de noms de tots els fitxers presents en un directori o camí.
Python ens proporciona aquests mètodes on podem imprimir la llista de noms, i un d'aquests mètodes és la funció listdir() del mòdul 'os'. Aprendrem aquest mètode listdir() en aquest tutorial i l'utilitzarem en un programa Python per imprimir una llista de noms de tots els fitxers presents al camí especificat.
c# conté una cadena
os.listdir() Mètode en Python
La funció listdir() és una funció proporcionada pel mòdul os, i utilitzant aquesta funció, podem imprimir una llista de noms de tots els fitxers presents a la ruta especificada. El mètode listdir() també es pot utilitzar si volem imprimir la llista de fitxers presents al directori de treball actual (on hi ha el programa). Podem utilitzar el mètode listdir() sempre que se'ns demani obtenir els noms de tots els fitxers presents en un directori especificat.
Sintaxi per a la funció os.listdir():
A continuació es mostra la sintaxi per utilitzar la funció listdir() del mòdul os:
>> os.listdir(pathSpecified)
Paràmetres:
Com podem veure a la sintaxi anterior, només hem donat un argument dins del mètode listdir(). La funció listdir() pren el paràmetre de camí següent:
Tipus de retorn:
El tipus de retorn per a la funció listdir() és 'list', ja que retorna una llista de noms de tots els fitxers presents al directori especificat.
os.listdir() Mètode: Implementació:
Per entendre el funcionament i la implementació de la funció listdir(), l'utilitzarem en un programa d'exemple i imprimirem la llista de noms de fitxer a partir d'aquest. Hem dividit la part d'implementació de la funció listdir() en les dues parts següents:
- Impressió de noms de fitxers des del directori de treball actual
- Impressió de noms de fitxer des del camí especificat
Utilitzarem un programa d'exemple per a cada categoria i obtindrem els noms dels fitxers de cada mètode.
Mètode 1: Impressió de noms de fitxers des del directori de treball actual:
En aquest mètode, imprimirem la llista de noms de fitxers del directori de treball actual utilitzant una altra funció del mòdul os, és a dir, la funció getcwd(). Mireu el següent exemple de programa per entendre la implementació d'aquest mètode:
Exemple 1:
Mireu el següent programa de Python on hem utilitzat el mètode os.listdir() amb l'argument ruta:
# Import os module import os # Use getcwd() function pathSpecified = os.getcwd() # Using listdir() function listOfFileNames = os.listdir(pathSpecified) # Print the name of all files in the current working directory print('Following is the list of names of all the files present in the current working directory: ') print(listOfFileNames)
Sortida:
una matriu d'objectes java
Following is the list of names of all the files present in the current working directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Com podem veure, els noms de tots els fitxers presents al nostre directori de treball actual s'imprimeixen a la sortida del programa.
Explicació:
Després d'importar el mòdul OS al programa, hem utilitzat la funció getcwd() per obtenir la ruta del directori de treball actual. Hem inicialitzat una variable amb el nom 'pathSpecified' i hem emmagatzemat la ruta del directori de treball actual en aquesta variable. Després d'això, hem utilitzat la funció listdir() en una altra variable inicialitzada, és a dir, listOfFileNames, per emmagatzemar el nom de tots els fitxers d'aquesta variable. Hem proporcionat una variable inicialitzada per a la ruta de treball actual com a argument a la funció listdir() i, finalment, vam imprimir la llista de tots els noms a la sortida mitjançant una instrucció print.
Si no volem utilitzar cap altra funció al nostre programa, també podem obtenir tots els noms de fitxers del directori actual en què el programa està present. Només hem de deixar la funció listdir() en lloc de proporcionar la ruta de qualsevol directori com a argument, i després d'això, el programa, quan s'executa, donarà la llista de tots els noms presents al directori actual com a resultat a la sortida. Mireu el següent exemple de programa per entendre la implementació d'aquest mètode:
Exemple 2:
Mireu el següent programa de Python on hem utilitzat el mètode os.listdir() sense cap argument:
# Import os module import os # Using listdir() function listOfFileNames = os.listdir() # Print the name of all files in the current working directory print('Following is the list of names of all the files present in the current working directory: ') print(listOfFileNames)
Sortida:
Following is the list of names of all the files present in the current working directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Com podem veure, una llista de noms de tots els fitxers presents al fitxer actual on està instal·lat Python s'imprimeix a la sortida després d'executar el programa.
10 de 40
Explicació:
En aquest programa, hem omès el paràmetre de ruta i encara obtenim la llista de noms de tots els fitxers presents al directori de treball actual. Preferirem utilitzar aquest mètode si volem obtenir la llista de tots els noms dels fitxers del directori de treball actual. Perquè en aquest mètode, no hem d'utilitzar cap argument ni definir cap variable de camí i, per tant, desa qualsevol línia de codi addicional al nostre programa i ens estalvia temps.
Mètode 2: Impressió de noms de fitxers des del camí especificat:
En aquest mètode, podem obtenir la llista de noms de tots els fitxers presents en un directori especificat proporcionant la ruta especificada del directori dins de la funció listdir(). Podem obtenir la ruta del directori des de l'opció de propietats del fitxer, i després podem utilitzar el mateix fitxer al programa. Mireu el següent exemple de programa per entendre la implementació d'aquest mètode:
Exemple 3:
Mireu el següent programa de Python on hem utilitzat el mètode os.listdir() amb l'argument ruta:
# Import os module import os # Define the specified path pathSpecified = ' C:UsersManishDownloads' # Using listdir() function listOfFileNames = os.listdir(pathSpecified) # Print the name of all files in directory print('Following is the list of names of all the files present in the specified directory: ') print(listOfFileNames)
Sortida:
Following is the list of names of all the files present in the specified directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ........, Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Com podem veure, els noms de tots els fitxers presents al directori especificat s'imprimeixen a la sortida del programa.
Explicació:
Després d'importar el mòdul os al programa, primer hem definit la ruta del directori des d'on volem imprimir la llista de tots els noms de fitxer inicialitzant una variable de ruta. Després d'això, vam utilitzar la variable de ruta inicialitzada dins del mètode listdir() per utilitzar la ruta com a argument a la funció. Finalment, hem utilitzat una altra variable inicialitzada (listOfFileNames) dins de la instrucció d'impressió per imprimir el resultat a la sortida.
Conclusió
Hem après el mètode listdir() del mòdul os en aquest tutorial i hem entès la importància d'aquesta funció. Aprenem la sintaxi d'aquesta funció i, després, aprenem els mètodes per utilitzar aquesta funció. Finalment, hem utilitzat el programa Python amb la funció listdir() per entendre la implementació de cada mètode.