אתגר בסיסי
הנה התוכן של קובץ CSV לדוגמה "my_file.csv"
בשימוש בקטע הקוד שלנו למטה:
Name,Job,Age,Income Alice,Programmer,23,110000 Bob,Executive,34,90000 Carl,Sales,45,50000
אם אתה מדמיין את ה-CSV הזה בצורת טבלה, זה נראה כך:
שֵׁם | עבודה | גיל | הַכנָסָה |
---|---|---|---|
אליס | מְתַכנֵת | 23 | 110000 |
בוב | מְנַהֵל | 34 | 90000 |
קרל | מכירות | 45 | 50000 |
הבעיה הבסיסית היא להמיר את קובץ ה-CSV "my_file.csv"
לקובץ TXT חדש "my_file.txt"
כפי שהוא מבלי לשנות את תוכנו
Name,Job,Age,Income Alice,Programmer,23,110000 Bob,Executive,34,90000 Carl,Sales,45,50000
אנחנו מתחילים בחקירת האתגר הבסיסי הזה ובונים משם על ידי שינוי המפריד ושימוש ב-Pandas כדי לגשת לעמודות בודדות.
אבל דבר ראשון: כיצד להמיר קובץ CSV לקובץ TXT מבלי לשנות את תוכנו?
שיטה 1: CSV ל-TXT ללא שינוי
אם אתה רוצה לשמור את התוכן (כולל המפריד ','
) בקובץ ה-CSV ללא שינוי, ההמרה פשוטה: קרא את .csv
קובץ וכתוב את התוכן שלו לתוך חדש .txt
קובץ באמצעות open()
, read()
ו write()
פונקציות מבלי לייבא ספריה כלשהי.
במילים אחרות, בצע את שלושת השלבים כדי לכתוב CSV לקובץ TXT ללא שינוי:
- פתח את קובץ ה-CSV במצב קריאה ואת קובץ ה-TXT במצב כתיבה.
- קרא את קובץ ה-CSV ואחסן אותו במשתנה.
- כתוב את התוכן לקובץ TXT.
להלן קטע הקוד שפותר את האתגר הבסיסי שלנו:
# 1. Open the CSV file in reading mode and the TXT file in writing mode with open('my_file.csv', 'r') as f_in, open('my_file.txt', 'w') as f_out: # 2. Read the CSV file and store in variable content = f_in.read() # 3. Write the content into the TXT file f_out.write(content)
😲 עובדה לא ידועה: Python מאפשר ביטויים מרובים בתוך ה מנהל הקשר (with
שורת פתיחה) אם תפריד ביניהם בפסיק.
התוכן של .csv
ו .txt
הקבצים זהים:
Name,Job,Age,Income Alice,Programmer,23,110000 Bob,Executive,34,90000 Carl,Sales,45,50000
בינתיים הכל טוב. אבל מה אם יש לך בעיה קצת אחרת:
שיטה 2: CSV to TXT Empty Space Delimiter
אתגר: כיצד להמיר קובץ CSV לקובץ TXT ב-Python על ידי החלפת המפריד ','
עם החלל הריק ' '
?
דוגמא: המר את הקובץ הבא 'my_file.csv'
…
Name,Job,Age,Income Alice,Programmer,23,110000 Bob,Executive,34,90000 Carl,Sales,45,50000
… לקובץ הזה 'my_file.txt'
…
Name Job Age Income Alice Programmer 23 110000 Bob Executive 34 90000 Carl Sales 45 50000
הנה הפתרון הפשוט לאתגר הזה:
אם אתה רוצה לשנות את המפריד ','
למחרוזת ריקה ' '
בקובץ ה-TXT החדש, קרא את .csv
קובץ וכתוב את התוכן שלו לתוך חדש .txt
קובץ באמצעות ה open()
, read()
, string.replace()
ו write()
פונקציות מבלי לייבא ספריה כלשהי.
כדי להמיר CSV לקובץ TXT ב- Python, בצע את השלבים הבאים:
- פתח את קובץ ה-CSV במצב קריאה ואת קובץ ה-TXT במצב כתיבה.
- קרא את קובץ ה-CSV למחרוזת.
- צור מחרוזת חדשה על ידי החלפת כל המופעים של המפריד
','
עם המחרוזת הריקה' '
. - כתוב את התוכן לקובץ TXT.
with open('my_file.csv', 'r') as f_in, open('my_file.txt', 'w') as f_out: content = f_in.read().replace(',', ' ') f_out.write(content)
בינתיים הכל טוב. אבל ב-Python, תמיד יש הרבה דרכים לפתור בעיה. בואו נסתכל על אלטרנטיבה רבת עוצמה לגישה ללא ספרייה ששימשה בעבר:
שיטה 3: CSV ל-TXT באמצעות Pandas
בהנחה שכבר עשית התקינו פנדות בסביבה המקומית שלך, אתה יכול לכתוב א CSV לקובץ TXT ב-Python pandas באמצעות ארבעת השלבים הבאים:
- ייבא את
pandas
סִפְרִיָה. - קרא את קובץ ה-CSV לתוך DataFrame באמצעות
pd.read_csv()
. - המר את ה-DataFrame למחרוזת באמצעות המובנה
str()
פוּנקצִיָה. - הדפס את המחרוזת לקובץ באמצעות ארגומנט הקובץ של ה-
print()
פונקציה, למשל.
הנה הדוגמה הבסיסית של Python:
import pandas as pd df = pd.read_csv('my_file.csv') content = str(df) print(content, file=open('my_file.txt', 'w'))
😲 עובדה לא ידועה: של פייתון print()
הפונקציה מאפשרת לך לכתוב א מחרוזת ישירות לקובץ אובייקט אם אתה משתמש ב- file
ארגומנט כפי שמוצג בקטע הקוד.
הפלט של קטע הקוד הקודם הוא כדלקמן:
Name Job Age Income 0 Alice Programmer 23 110000 1 Bob Executive 34 90000 2 Carl Sales 45 50000
יפה, לא? 💜
בואו נסתכל על הווריאציה האחרונה של בעיית "CSV ל-TXT" המטופלת במדריך זה:
שיטה 4: עמודות או שורות CSV ל-TXT באמצעות Pandas
כיצד לכתוב עמודה או שורה בודדת אחת או יותר של קובץ ה-CSV לתוך קובץ TXT באמצעות Python Pandas?
- ייבא את
pandas
סִפְרִיָה. - קרא את קובץ ה-CSV לתוך DataFrame באמצעות
pd.read_csv()
. - בחר את העמודות או השורות לכתיבה לקובץ TXT מה-DataFrame באמצעות פנדות אינדקס או חיתוך.
- שִׂיחָה
df.to_string()
להמיר את ה-DataFrame למחרוזת בצורה הניתנת לקריאה על ידי אדם. - הדפס את המחרוזת לקובץ באמצעות ארגומנט הקובץ של ה-
print()
פונקציה, למשל.
import pandas as pd df = pd.read_csv('my_file.csv') content = str(df['Name']) print(content, file=open('my_file.txt', 'w'))
התוכן בקובץ חדש 'my_file.txt'
:
0 Alice 1 Bob 2 Carl
כמובן, אתה יכול גם לבחור שורות בודדות או עמודות מרובות כך:
import pandas as pd df = pd.read_csv('my_file.csv') content = df['Name'][:2].to_string() print(content, file=open('my_file.txt', 'w'))
תוכן הקובץ החדש 'my_file.txt'
מראה שרק שתי השורות הראשונות נלקחו עקב ה פִּלוּחַ פעולה [:2]
בקטע הקוד הקודם:
0 Alice 1 Bob
בוצע! הרווחת קצת הנאה מתכנות:
הומור מתכנת
❓ Question: How did the programmer die in the shower? ☠️
❗ תשובה: הם קראו את ההוראות של בקבוק השמפו:
לְהַקְצִיף. לִשְׁטוֹף. חזור.
סיכום
אני מקווה שנהניתם לקרוא את המאמר הזה ולמדתם משהו חדש. אל תהסס להצטרף לניוזלטר הדוא"ל שלנו עם גיליונות צ'יט בחינם ומדריכים שבועיים של Python:

תוך כדי עבודה כחוקר במערכות מבוזרות, ד"ר כריסטיאן מאייר מצא את אהבתו להוראת סטודנטים למדעי המחשב.
כדי לעזור לתלמידים להגיע לרמות גבוהות יותר של הצלחה ב-Python, הוא הקים את אתר החינוך לתכנות Finxter.com. הוא מחבר ספר התכנות הפופולרי Python One-Liner (NoStarch 2020), מחבר שותף של הפסקת קפה פייתון סדרת ספרים בהוצאה עצמית, חובבת מדעי המחשב, סוֹפֵר בִּלתִי תָלוּיובעלים של אחד מ-10 הגדולים ביותר בלוגים של פייתון עוֹלָמִי.
התשוקות שלו הן כתיבה, קריאה וקידוד. אבל התשוקה הגדולה ביותר שלו היא לשרת קודנים שואפים דרך Finxter ולעזור להם לשפר את כישוריהם. אתה יכול הצטרף לאקדמיית האימייל החינמית שלו כאן.
קישור לכתבת המקור – 2022-06-25 10:17:31