पायथन: टेक्स्ट फाइल को लिस्ट में पढ़ें
डेटा को फाइल्स में स्टोर करने से आप उस डेटा का रिकॉर्ड रख सकते हैं जिसके साथ प्रोग्राम काम कर रहा है। इसका मतलब है कि प्रोग्राम के साथ काम करते समय आपको डेटा को बार-बार जनरेट नहीं करना पड़ता। आप बस उस डेटा को फाइल से पढ़ लेते हैं।
फाइल्स पढ़ने के लिए, readlines() मेथड का उपयोग करें। एक बार जब आप फाइल पढ़ लेते हैं, तो उन लाइन्स को लिस्ट में बदलने के लिए split() का उपयोग करें।
इस गाइड में, हम चर्चा करते हैं कि टेक्स्ट फाइल को लिस्ट में पढ़ने के लिए split() मेथड का उपयोग कैसे करें। हम एक उदाहरण देखेंगे ताकि आप जल्दी से टेक्स्ट फाइल्स को लिस्ट में पढ़ना शुरू कर सकें।
उदाहरण: grilled_cheese.txt फाइल पढ़ना
आइए grilled_cheese.txt नामक एक टेक्स्ट फाइल से शुरू करते हैं। इस फाइल में ग्रिल्ड चीज़ सैंडविच की सामग्री है। हमारी फाइल का कंटेंट इस तरह दिखता है:
2 tbsp, ricotta 1 tbsp, grated parmesan 50g, mozzarella 25g, gorgonzola 2, thick slices white bread 1 tbsp, butter
हमारी फाइल में पहला कॉलम प्रत्येक सामग्री की मात्रा रखता है जिसे उपयोग करना है। दूसरा कॉलम सामग्री का नाम रखता है।
हम open() और readlines() मेथड्स का उपयोग करके इस फाइल को अपने कोड में पढ़ते हैं:
with open("grilled_cheese.txt", "r") as grilled_cheese:
lines = grilled_cheese.readlines()
print(lines)
हमारे कोड में, हम "grilled_cheese.txt" नामक फाइल को रीड मोड में खोलते हैं। रीड मोड को हमारे open() स्टेटमेंट में "r" कैरेक्टर द्वारा दर्शाया जाता है। अगला, हम उन लाइन्स को कंसोल पर प्रिंट करते हैं।
आइए देखें हमारा पायथन कोड क्या रिटर्न करता है:
['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n']
हमारा कोड हमारी फाइल में प्रत्येक लाइन की एक लिस्ट रिटर्न करता है। यह आउटपुट बिल्कुल वैसा नहीं है जिसकी हम उम्मीद कर रहे थे। हालांकि हमने अपनी फाइल को लिस्ट में पढ़ लिया है, लेकिन एक समस्या है: प्रत्येक लाइन अपने स्ट्रिंग में स्टोर है। सामग्री और उनकी मात्रा अलग नहीं हैं।
मानों को लिस्ट में विभाजित करें
इस समस्या को हल करने के लिए, हम split() मेथड का उपयोग करते हैं। यह मेथड हमें एक सेपरेटर कैरेक्टर का उपयोग करके स्ट्रिंग को विभाजित करने देता है जिसे हम निर्दिष्ट करते हैं।
शुरू करने के लिए, हम दो लिस्ट्स डिक्लेयर करते हैं: quantities और ingredients। यह कोड इंडेंटेड रहेगा क्योंकि यह हमारे open() ब्लॉक का हिस्सा है।
quantities = [] ingredients = []
हम अपनी लिस्ट पर इटरेट करेंगे ताकि हम अपनी फाइल से टेक्स्ट की प्रत्येक लाइन को एक्सेस कर सकें। फिर हम प्रत्येक लाइन को दो भागों में विभाजित करेंगे। विभाजन बिंदु प्रत्येक लाइन पर कॉमा और उसके बाद एक स्पेस है:
for l in lines:
as_list = l.split(", ")
quantities.append(as_list[0])
ingredients.append(as_list[1])
फोर लूप हमें हमारी फाइल को लाइन दर लाइन पढ़ने देता है। "as_list" में पहला मान सामग्री की मात्रा है। दूसरा मान सामग्री का नाम है। फिर हम इन दोनों लिस्ट्स को कंसोल पर प्रिंट करते हैं:
print(quantities) print(ingredients)
आइए अपना कोड चलाएं:
['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n'] ['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp'] ['ricotta\n', 'grated parmesan\n', 'mozzarella\n', 'gorgonzola\n', 'thick slices white bread\n', 'butter\n']
हमारा कोड कंसोल पर तीन लिस्ट्स प्रिंट करता है। पहली लिस्ट हमारी फाइल में टेक्स्ट की सभी लाइन्स की लिस्ट है। दूसरी लिस्ट में हमारी फाइल से सभी मात्राएं हैं। तीसरी लिस्ट में सभी सामग्रियां हैं।
नई लाइन्स हटाएं
एक सुधार अभी भी करना बाकी है। प्रत्येक सामग्री "\n" कैरेक्टर से समाप्त होती है। यह कैरेक्टर नई लाइन को दर्शाता है। हम replace() मेथड का उपयोग करके इस कैरेक्टर को हटा सकते हैं:
for l in lines:
as_list = l.split(", ")
quantities.append(as_list[0])
ingredients.append(as_list[1].replace("\n", ""))
हमारे फोर लूप में, हम "\n" मान को खाली स्ट्रिंग से बदलते हैं। हम यह as_list[1] मान पर करते हैं जो प्रत्येक सामग्री के नाम से संबंधित है।
अब जब हमने यह परिवर्तन कर लिया है, तो हमारा प्रोग्राम तैयार है:
with open("grilled_cheese.txt", "r") as grilled_cheese:
lines = grilled_cheese.readlines()
quantities = []
ingredients = []
for l in lines:
as_list = l.split(", ")
quantities.append(as_list[0])
ingredients.append(as_list[1].replace("\n", ""))
print(quantities)
print(ingredients)
आइए अपना कोड चलाएं और देखें क्या होता है:
['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp'] ['ricotta', 'grated parmesan', 'mozzarella', 'gorgonzola', 'thick slices white bread', 'butter']
हमारा कोड सफलतापूर्वक हमारी टेक्स्ट फाइल को दो लिस्ट्स में बदल देता है। एक लिस्ट में रेसिपी के लिए सामग्री की मात्राएं होती हैं। दूसरी लिस्ट में वे सामग्रियां होती हैं जिनका उपयोग हम रेसिपी के लिए करेंगे।
निष्कर्ष
आप open() और readlines() मेथड्स का उपयोग करके टेक्स्ट फाइल पढ़ सकते हैं। टेक्स्ट फाइल को लिस्ट में पढ़ने के लिए, split() मेथड का उपयोग करें। यह मेथड स्ट्रिंग्स को एक निश्चित कैरेक्टर पर लिस्ट में विभाजित करता है।
उपरोक्त उदाहरण में, हमने कॉमा और स्पेस (", ") की स्थिति के आधार पर स्ट्रिंग को लिस्ट में विभाजित किया। अब आप पायथन में टेक्स्ट फाइल को लिस्ट में एक एक्सपर्ट की तरह पढ़ने के लिए तैयार हैं।