כיצד לקרוא מ- stdin ב- Python

How Read From Stdin Python



קח קלט מהמשתמש הוא חלק חשוב בכל שפת תכנות. הפלט של התוכניות הרבות תלוי בקלט הסטנדרטי. הדרך לקחת קלט מהמשתמש שונה בשפות תכנות שונות. קיימות דרכים רבות בפייתון לקריאה מהקלט הסטנדרטי. ה פונקציית קלט () הדרך הנפוצה ביותר היא לקרוא מתוך הקלט הסטנדרטי, שהוא פונקציה מובנית. ה sys.stdin היא דרך נוספת היא לקרוא מהקלט הסטנדרטי את השיחות פונקציית קלט () כְּלַפֵּי פְּנִים. לפייתון יש מודול נוסף בשם קלט קבצים לקריאת הקלט הסטנדרטי. ה פונקציית קלט () של מודול זה ניתן להשתמש בו כדי לקרוא קלט רגיל או לקרוא תוכן מקובץ אחד או יותר. דרכים שונות לקריאה מהקלט הסטנדרטי ב- Python הוסברו במדריך זה.

Exampe-1: קרא נתונים מ- stdin באמצעות פונקציית קלט ()

הפונקציה input () היא הפונקציה הנפוצה ביותר לקחת קלט מהמשתמש. צור קובץ פייתון עם הסקריפט הבא כדי לקבל קלט מהמשתמש עד ללחיצה על מקש 'n'. כאן, לולאה אינסופית נוצרת באמצעות לולאת ה- while. פונקציית הקלט () הראשונה משמשת כדי לקחת את הנתונים מהמשתמש, והפונקציה print () משמשת להדפסת ערך הקלט. לאחר מכן, פונקציית הקלט () של הסקריפט משמשת כדי לבקש מהמשתמש להמשיך במשימה שוב או לצאת מהתסריט. אם המשתמש לוחץ על 'n' או 'N', איטרציה של הלולאה תיעצר על ידי משפט ההפסקה; אחרת הלולאה תחזור על עצמה ותקבל קלט נוסף מהמשתמש. הפונקציה העליונה () משמשת בתסריט כדי להוון את הערך שנתן המשתמש.







# הגדר לולאה אינסופית

בזמן נָכוֹן:

# קח קלט מהמשתמש

inputVal= קֶלֶט('הקלד טקסט כלשהו: n')

# הדפס את ערך הקלט

הדפס('ערך הקלט הוא %s'%(inputVal))

# בקש איטרציה הבאה

קלט הבא= קֶלֶט('האם אתה רוצה להמשיך? (Y/N) ')

# סיים מהלולאה אם ​​נלחץ על 'n'

אםקלט הבא.עֶלִיוֹן() == 'N':

לשבור

# הדפס את הודעת הסיום

הדפס('התוכנית הסתיימה.')

תְפוּקָה:

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





דוגמה 2: קרא נתונים מ- stdin באמצעות sys.stdin

ה sys.stdin היא אפשרות נוספת של Python לקחת קלט סטנדרטי מהמשתמשים מהמסוף. הוא מכנה את הפונקציה input () פנימית ומוסיף ' n 'לאחר נטילת הקלט. צור קובץ פייתון עם הסקריפט הבא כדי לבדוק את השימוש ב- sys.stdin לקחת קלט סטנדרטי. כאן, לולאת ה'כניסה 'משמשת כדי לקחת את הקלט מהמשתמש אינסוף פעמים עד שהמשתמש ירצה לסיים את הסקריפט. לאחר הדפסת ערך הקלט, פונקציית קלט () משמש לבקש מהמשתמש להפסיק את הסקריפט או לא. התסריט יסתיים אם המשתמש לוחץ על ' ו 'או' וגם '. ה הפונקציה העליונה () משמש כאן גם להוון ערך הקלט.





# ייבוא ​​מודול sys

יְבוּא sys


הדפס('הקלד טקסט כלשהו:')


# קח קלט באמצעות stdin

לinputValב sys.stdin:

# הדפס את ערך הקלט

הדפס('ערך הקלט הוא:%s'% inputVal)


# בקש את האיטרציה הבאה

קלט הבא= קֶלֶט('אתה רוצה לסיים? (Y/N) ')

# סיים מהלולאה אם ​​לוחצים על 'y/Y'

אםקלט הבא.לְהִתְפַּשֵׁט().עֶלִיוֹן() == 'וגם':

לשבור

אַחֵר:

הדפס('הקלד טקסט כלשהו:')

תְפוּקָה:

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



דוגמה 3: קרא נתונים מ- stdin באמצעות fileinput

קלט הקבצים הוא מודול נוסף של Python לקבלת קלט סטנדרטי. ניתן לקחת את שורות הטקסט מהטרמינל או מקובץ באמצעות fileinput.input () . אם לא מסופק ערך ארגומנט בפונקציה זו, הוא ייקלט קלט מהטרמינל ואם שם קובץ קיים יסופק כערך ארגומנט, הוא ייקח את הקלט מהקובץ. צור קובץ פייתון עם הסקריפט הבא כדי לקחת קלט סטנדרטי מהמסוף. כאן, לולאת 'for-in' משמשת כדוגמה הקודמת כדי לקחת קלט לזמנים אינסופיים עד שהמשתמש ירצה לסיים את הסקריפט. לאחר מכן, פונקציית הקלט () משמשת לבקש מהמשתמש להפסיק את הסקריפט או לא. הסקריפט יסתיים אם המשתמש מקליד 'צא' או 'צא' או 'צא' . ה הפונקציה העליונה () משמש כאן גם להוון ערך הקלט. ה הפונקציה strip () משמש להסרת הרווחים הנוספים משני צדי ערך הקלט.

# ייבא מודול קלט קבצים

יְבוּא קלט קבצים


הדפס('הזן את הטקסט:')

'' '

קח קלט באמצעות הפונקציה fileinput.input () ו-

הקש ctrl+D כדי לסיים לקחת את ערך הקלט

'' '


לinputValב קלט קבצים.קֶלֶט():

# הפסק מהלולאה אם ​​הקלדת 'צא'

אםinputVal.לְהִתְפַּשֵׁט().עֶלִיוֹן() == 'לְהַפְסִיק':

לשבור


# הדפס את ערך הקלט

הדפס('ערך הקלט הוא:',inputVal)

הדפס('הזן את הטקסט:')

תְפוּקָה:

הפלט הדומה הבא יופיע לאחר ביצוע התסריט לעיל. כאן, 'למד פייתון מ- LinuxHint.com' נתן כערך הקלט הראשון והסתיים מהתסריט להקלדת המילה 'צא'. עליך לזכור דבר אחד בעת לקיחת קלט מהמסוף באמצעות קלט קבצים מודול. כלומר, עליך ללחוץ על ctrl+d לאחר ביצוע הקלט.

עליך לספק את שם הקובץ כערך הארגומנט של fileinput.input () פונקציה אם אתה רוצה לקחת נתונים מהקובץ במקום מהמסוף.

סיכום:

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