כיצד לקרוא קובץ טקסט לתוך רשימה או מערך עם Python? – פינקסטר

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp
Share on email
פרסומת
X-ray_Promo1


ניסוח בעיה: קחו בחשבון שאתם מנסים לקרוא את התוכן של קובץ טקסט. איך תקרא את הטקסט מהקובץ ותשמור אותו ברשימת Python?

תרחיש 1

כדי לקבל בהירות טובה יותר על הבעיה, בואו נסתכל על שאלה דומה שנשאלה ב-StackOverflow:

מָקוֹר: https://stackoverflow.com/questions/14676265/how-to-read-a-text-file-into-a-list-or-an-array-with-python

לפני שנצלול לתוך הפתרון, בואו נענה על השאלה הראשונה –

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

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

דִיוּן: התוכן של קובץ מכיל רצף של תווים. כאשר אתה מפצל את תוכן הקובץ, הם מטופלים כרשימה נפרדת של ערכים המבוססת על מפריד מוגדר. לדוגמה, ניתן לפצל קובץ טקסט עם התוכן "0,0,200,0,53,1,0,255" על המפריד "," והוא יצור את הרשימה ['0' ,'0' ,'200' , '0', '53', '1', '0', '255'].

אתה יכול להוריד את הקובץ המשמש כדוגמה במדריך זה כאן:

נו! בואו נצלול לתוך הדרכים הרבות להשגת התפוקה הרצויה.

פתרון: באמצעות str.split()

גִישָׁה: קרא את כל התוכן של הקובץ כמחרוזת באמצעות ה file.read() פוּנקצִיָה. להשתמש ב str.split(separator) פונקציה עם מחרוזת זו כדי להחזיר רשימה של ערכים המכילה כל טקסט של הקובץ כפריט נפרד. המפריד שישמש במקרה הנתון הוא ",".

קוד:

file = open("demo.txt", "r")
contents = file.read()
list_of_contents = contents.split(",")
file.close()
print(list_of_contents)

תְפוּקָה:

['0', '0', '200', '0', '53', '1', '0', '255']

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

תחביר:

  • מפריד הוא פרמטר אופציונלי המשמש לציון המפריד (מפרידים). כברירת מחדל, זה כל תו של רווח לבן.
  • maxsplit הוא פרמטר אופציונלי המאפשר לנו לציין את המספר המרבי של פיצולים שאנו רוצים לבצע. כברירת מחדל הערך שלו הוא -1 שזה "כל ההתרחשויות".

קריאה קשורה: איך חותכים מחרוזת בפייתון?

תרחיש 2: הפרד תוכן מכל שורה של קובץ טקסט ואחסן כרשימה

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

דוגמא: שקול את הקובץ המופיע להלן:

פלט צפוי:

[‘0’, ‘0’, ‘200’, ‘0’, ’53’, ‘1’, ‘0’, ‘255’, ‘1.5’, ‘2.5’, ‘3.5’, ‘4.5’, ‘5.5’, ‘0.1’, ‘0.2’, ‘0.3’, ‘0.4’, ‘0.5’]

פתרון: אחסן בנפרד כל שורה ברשימה ושטח את הרשימה

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

  • שלב 1: הפרד כל שורה ואחסן אותם כאלמנטים בודדים ברשימה. בשלב זה תהיה לך רשימה המכילה כל שורה המאוחסנת כפריט בתוך הרשימה. לפי השאלה הנתונה, הרשימה תיראה בערך כך: ['0,0,200,0,53,1,0,255', '1.5,2.5,3.5,4.5,5.5', '0.1,0.2,0.3,0.4,0.5']
  • שלב 2: צור רשימות עצמאיות בתוך הרשימה לעיל על ידי הפרדת כל פריט על בסיס המפריד. אז הרשימה מייצגת כעת רשימה של רשימות: [['0,0,200,0,53,1,0,255'], ['1.5,2.5,3.5,4.5,5.5'], ['0.1,0.2,0.3,0.4,0.5']]
  • שלב 3: לבסוף, שטחו את הרשימה שנוצרה בשלב 2. שימו לב שניתן למזג את שלב 2 ושלב 3 לשלב אחד. כדי ללמוד כיצד לשטח רשימה של רשימות אתה יכול לעיין במדריך זה: לשטח רשימה של רשימות ב-Python.

קוד:

separated_lines = [line.strip() for line in open('demo.txt')]
flattened_list = [item for i in separated_lines for item in i.split(",")]
print(flattened_list)
# ['0', '0', '200', '0', '53', '1', '0', '255', '1.5', '2.5', '3.5', '4.5', '5.5', '0.1', '0.2', '0.3', '0.4', '0.5']

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

סיכום

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

קידוד שמח! 🙂


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

קורס זה ייקח אותך ממתחיל למומחה ב-PyCharm תוך ~90 דקות.

הצטרף ל כיתת אמן של PyCharm עכשיו, ואמן PyCharm עד מחר!



קישור לכתבת המקור – 2022-09-21 01:40:58

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on telegram
Telegram
Share on whatsapp
WhatsApp
Share on email
Email
פרסומת
X-ray_Promo1

עוד מתחומי האתר