logo

שיטת Python os.listdir()

בהחלט ייתכן שנתקלנו בכל כך הרבה מקרים בחיינו בהם אנו רוצים לדעת כמה ואיזה קבצים קיימים בספרייה (תיקייה). או, לפעמים אנחנו צריכים לחפש קובץ, ואנחנו יודעים את שמו, אבל אנחנו לא יודעים באיזו תיקייה הוא קיים. במקרה כזה, האפשרות היחידה שנותרה לנו היא לחפש את הקובץ בספריית היעד.

עכשיו, זה נראה כל כך קל לרבים מאיתנו לחשוב; אנחנו רק צריכים ללכת לספרייה ולחפש שם. זוהי אפשרות אפשרית, אך אפשרות זו תעבוד רק כאשר יש לנו מספר קטן יותר של קבצים בספרייה זו. רק אז נוכל לבקר בספרייה הזו באופן ידני ולחפש את הקבצים הקיימים שם. אבל, מה במקרה שבו מספר רב של קבצים, בוא נגיד אלפי קבצים שנמצאים בספריית היעד. במקרה כזה, אפשרות זו לא תעבוד כי זה ייקח הרבה מאוד זמן (אפילו ימים רבים) לחפש אם קיים קובץ ספציפי בספריית היעד שבה קיימים אלפי קבצים. נראה מה עלינו לעשות אם עלינו למצוא קובץ עם שמו בתוך ספרייה הכוללת אלפי קבצים.

אנחנו יכולים לחפש את השם דרך סייר הקבצים, אבל אם נעשה את זה, זה גם ייקח הרבה זמן, לא כמו באופציה הקודמת אבל כן, הרבה זמן. הסיבה לכך היא שסייר הקבצים יסרוק כל קובץ שנמצא בספריה, ועלינו להמתין כל כך הרבה עד שתסתיים סריקה מלאה של הדיסק.

אבל מה אם נגיד שכבר סיפקנו את השמות של כל הקבצים שנמצאים בספריית היעד או בנתיב. לאחר מכן, יהיה לנו קל מאוד לבדוק אם הקובץ שצוין קיים בנתיב הממוקד, והוא גם מראה היכן אנחנו צריכים להשיג את השמות של כל הקבצים הקיימים בספריית היעד.

אם ניתנת לנו רשימה של שמות של כל הקבצים הקיימים בספרייה בצורת טקסט, עלינו רק להקליד את השם של אותו קובץ ספציפי בשורת החיפוש. ואז, זה בקושי ייקח שניה כדי לגלות אם הקובץ קיים ברשימת השמות או לא. לפיכך, אנו יכולים להבין עד כמה חשוב שתהיה שיטה שבה נוכל להדפיס את רשימת השמות של כל הקבצים הנמצאים בספרייה או בנתיב.

Python מספקת לנו שיטות כאלה שבהן נוכל להדפיס את רשימת השמות, ושיטה אחת כזו היא הפונקציה listdir() של מודול 'os'. אנו הולכים ללמוד את שיטת listdir() זו במדריך זה ולהשתמש בה בתוכנית Python כדי להדפיס רשימה של שמות של כל הקבצים הנמצאים בנתיב שצוין.

אופס בג'אווה

שיטת os.listdir() ב-Python

הפונקציה listdir() היא פונקציה המסופקת על ידי מודול os, ובאמצעות פונקציה זו, נוכל להדפיס רשימה של שמות של כל הקבצים הנמצאים בנתיב שצוין. ניתן להשתמש בשיטה listdir() גם אם ברצוננו להדפיס את רשימת הקבצים הקיימים בספריית העבודה הנוכחית (בה קיימת התוכנה). אנו יכולים להשתמש בשיטת listdir() בכל פעם שאנו נדרשים לקבל את השמות של כל הקבצים הקיימים בספרייה שצוינה.

תחביר עבור פונקציית os.listdir():

להלן התחביר לשימוש בפונקציה listdir() ממודול מערכת ההפעלה:

 >> os.listdir(pathSpecified) 

פרמטרים:

כפי שאנו יכולים לראות בתחביר הנתון לעיל, נתנו רק ארגומנט בתוך המתודה listdir() . הפונקציה listdir() לוקחת את פרמטר הנתיב הבא:

    נתיב שצוין:כאן, המשתנה pathSpecified מייצג את הנתיב של ספריית היעד שממנו אנו רוצים לדעת את השם של כל הקבצים. זהו ארגומנט אופציונלי בפונקציה listdir() ואם לא נספק נתיב מוגדר בתוך הפונקציה, הוא ידפיס את כל שמות הקבצים מספריית העבודה הנוכחית.

סוג החזרה:

סוג ההחזרה של הפונקציה listdir() הוא 'list' מכיוון שהיא מחזירה רשימה של שמות של כל הקבצים שנמצאים בספרייה שצוינה.

os.listdir() שיטה: יישום:

כדי להבין את העבודה והיישום של הפונקציה listdir() נשתמש בה בתוכנית לדוגמה ונדפיס ממנה את רשימת שמות הקבצים. חילקנו את חלק היישום של הפונקציה listdir() לשני החלקים הבאים:

  1. הדפסת שמות קבצים מספריית העבודה הנוכחית
  2. הדפסת שמות קבצים מהנתיב שצוין

נשתמש בתוכנית לדוגמה עבור כל קטגוריה ונקבל את שמות הקבצים בכל שיטה.

שיטה 1: הדפסת שמות קבצים מספריית עבודה נוכחית:

בשיטה זו, נדפיס את רשימת שמות הקבצים מספריית העבודה הנוכחית באמצעות פונקציה אחרת של מודול ה-os, כלומר הפונקציה getcwd() . עיין בתוכנית לדוגמה הבאה כדי להבין את היישום של שיטה זו:

דוגמה 1:

תסתכל על תוכנית Python הבאה שבה השתמשנו בשיטת os.listdir() עם ארגומנט הנתיב:

 # 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) 

תְפוּקָה:

 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'] 

כפי שאנו יכולים לראות, שמות כל הקבצים הקיימים בספריית העבודה הנוכחית שלנו מודפסים בפלט של התוכנית.

הֶסבֵּר:

לאחר ייבוא ​​מודול os בתוכנית, השתמשנו בפונקציה getcwd() כדי לקבל את הנתיב של ספריית העבודה הנוכחית. אתחלנו משתנה בשם 'pathSpecified' ואחסנו את הנתיב של ספריית העבודה הנוכחית במשתנה זה. לאחר מכן, השתמשנו בפונקציה listdir() במשתנה אתחול אחר, כלומר listOfFileNames, כדי לאחסן את השם של כל הקבצים במשתנה זה. סיפקנו משתנה אתחול עבור נתיב העבודה הנוכחי כארגומנט בפונקציה listdir() ולבסוף, הדפסנו את רשימת כל השמות בפלט באמצעות משפט print.

אם אנחנו לא רוצים להשתמש בפונקציה אחרת בתוכנית שלנו, אז אנחנו יכולים לקבל את כל שמות הקבצים מהספרייה הנוכחית שבה התוכנית נמצאת. אנחנו רק צריכים להשאיר את הפונקציה listdir() במקום לספק נתיב של ספרייה כלשהי כארגומנט, ולאחר מכן, התוכנית, כאשר היא מבוצעת, תיתן את רשימת כל השמות הקיימים בספרייה הנוכחית כתוצאה מהפלט. עיין בתוכנית לדוגמה הבאה כדי להבין את היישום של שיטה זו:

דוגמה 2:

מילת מפתח סטטית ב-java

תסתכל על תוכנית Python הבאה שבה השתמשנו בשיטת os.listdir() ללא שום ארגומנט:

 # 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) 

תְפוּקָה:

 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'] 

כפי שאנו יכולים לראות, רשימה של שמות של כל הקבצים הקיימים בקובץ הנוכחי בו מותקן Python מודפסת בפלט לאחר הפעלת התוכנית.

ערימת java

הֶסבֵּר:

בתוכנית זו, השמטנו את פרמטר הנתיב ועדיין מקבלים את רשימת השמות של כל הקבצים הקיימים בספריית העבודה הנוכחית. נעדיף להשתמש בשיטה זו אם נרצה לקבל את רשימת כל שמות הקבצים מספריית העבודה הנוכחית. מכיוון שבשיטה זו, אנחנו לא צריכים להשתמש בשום ארגומנט או להגדיר שום משתנה נתיב, וכך היא חוסכת כל שורת קוד נוספת בתוכנית שלנו וחוסכת לנו את הזמן.

שיטה 2: הדפסת שמות קבצים מנתיב שצוין:

בשיטה זו, נוכל לקבל את רשימת השמות של כל הקבצים הקיימים בספרייה שצוינה על ידי מתן הנתיב שצוין של הספרייה בתוך הפונקציה listdir() . נוכל לקבל את הנתיב של הספרייה מאפשרות המאפיינים של הקובץ, ואז נוכל להשתמש באותו קובץ בתוכנה. עיין בתוכנית לדוגמה הבאה כדי להבין את היישום של שיטה זו:

דוגמה 3:

תסתכל על תוכנית Python הבאה שבה השתמשנו בשיטת os.listdir() עם ארגומנט הנתיב:

 # 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) 

תְפוּקָה:

 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'] 

כפי שאנו יכולים לראות, שמות כל הקבצים הקיימים בספרייה שצוינה מודפסים בפלט של התוכנית.

הֶסבֵּר:

לאחר ייבוא ​​מודול ה-os בתוכנית, הגדרנו תחילה את הנתיב של הספרייה ממנה נרצה להדפיס את רשימת כל שמות הקבצים על ידי אתחול משתנה נתיב. לאחר מכן, השתמשנו במשתנה הנתיב המאתחל בתוך המתודה listdir() כדי להשתמש בנתיב כארגומנט בפונקציה. לבסוף, השתמשנו במשתנה מאותחל אחר (listOfFileNames) בתוך הצהרת print כדי להדפיס את התוצאה בפלט.

סיכום

למדנו על שיטת listdir() של מודול os במדריך זה והבנו את החשיבות של פונקציה זו. אנו לומדים על התחביר של פונקציה זו, ולאחר מכן אנו לומדים את השיטות לשימוש בפונקציה זו. בסוף, השתמשנו בתוכנת Python עם הפונקציה listdir() כדי להבין את היישום של כל שיטה.