मैंने "पाइथन 3 में डाइव" में पढ़ा है कि "रीडलाइन() विधि अब एक पुनरावर्तक लौटाती है, इसलिए यह उतना ही कुशल है जितना xreadlines() पायथन 2 में था"। यहां देखें: http://diveintopython3.org/porting-code-to-python-3-with-2to3.html। मुझे यकीन नहीं है कि यह सच है क्योंकि वे इसका उल्लेख यहां नहीं करते हैं: http://docs.python.org/release/3.0.1/whatsnew/3.0.html। मैं इसे कैसे देख सकता हूं?क्या रीडलाइन() पाइथन 3 में एक सूची या एक पुनरावर्तक लौटाता है?
उत्तर
:
Python 3.1.2 (r312:79149, Mar 21 2010, 00:41:52) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('/junk/so/foo.txt')
>>> type(f.readlines())
<class 'list'>
>>> help(f.readlines)
Help on built-in function readlines:
readlines(...)
Return a list of lines from the stream.
hint can be specified to control the number of lines read: no more
lines will be read if the total size (in bytes/characters) of all
lines so far exceeds hint.
>>>
readlines विधि पायथन 3 में एक इटरेटर वापस नहीं करता है, यह एक सूची
Help on built-in function readlines:
readlines(...)
Return a list of lines from the stream.
जाँच के लिए, बस एक इंटरैक्टिव सत्र से इसे कहते रिटर्न - यह एक सूची प्रदान करेगा, बल्कि एक इटरेटर से:
>>> type(f.readlines())
<class 'list'>
पायथन में गोताखोरी इस मामले में गलत प्रतीत होती है।
xreadlines
deprecated since Python 2.3 किया गया है जब फ़ाइल वस्तुओं को अपने स्वयं के iterators बन गया। जिस तरह से xreadlines
रूप में एक ही दक्षता प्राप्त करने के लिए उपयोग करने के बजाय है
for line in f.xreadlines():
for line in f:
यह आपको इटरेटर जो आप चाहते हो जाता है, और समझाने के लिए क्यों readlines
को बदलने की जरूरत नहीं की थी मदद करता है अपने पायथन 3 में व्यवहार - यह अभी भी एक पूर्ण सूची लौटा सकता है, line in f
बेवकूफ दृष्टिकोण प्रदान करने वाला idiom, और लंबे समय से बहिष्कृत xreadlines
पूरी तरह से हटा दिया गया है।
दूसरों को पहले से ही जितना कहा है, लेकिन सिर्फ बिंदु घर ड्राइव करने के लिए, साधारण फ़ाइल की वस्तुओं के लिए अपने स्वयं iterators हैं। तो readlines()
वापस एक इटेटरेटर मूर्खतापूर्ण होगा, क्योंकि यह उस फ़ाइल को वापस कर देगा जिसे आपने इसे बुलाया था। आप एक फ़ाइल पर पुनरावृति करने के लिए एक for
पाश का उपयोग कर सकते है जैसे स्कॉट ने कहा, और आप भी उन्हें सीधे itertools कार्यों के लिए पारित कर सकते हैं:
from itertools import islice
f = open('myfile.txt')
oddlines = islice(f, 0, None, 2)
firstfiveodd = islice(oddlines, 5)
for line in firstfiveodd:
print(line)
- 1. क्या पाइथन स्टैक एक पुनरावर्तक प्रक्रिया द्वारा निष्पादित एक पुनरावर्तक प्रक्रिया के साथ बढ़ता है?
- 2. एक पुनरावर्तक
- 3. पायथन - एक पुनरावर्तक वर्ग
- 4. एक पुनरावर्तक का डिफ़ॉल्ट मान क्या है?
- 5. एक पाइथन सूची में एक ऑब्जेक्ट जोड़ें
- 6. एक पुनरावर्तक के लिए एक क्रियाशील सूची बाइंडिंग - ASP.NET
- 7. मैं एक पुनरावर्तक
- 8. क्या NHibernate एक पुनरावर्तक के बिना संग्रह सहेज सकता है?
- 9. रेल 3 और रीडलाइन समस्या
- 10. पुनरावर्तक से पुनरावर्तक या स्पष्ट रूपांतरण को पुनरावर्तक
- 11. मैं एक पुनरावर्तक
- 12. एक पुनरावर्तक नियंत्रण
- 13. एक वीबी.Net फ़ंक्शन जो स्ट्रिंग लौटाता है वास्तव में केवल एक ही चरित्र लौटाता है?
- 14. एक सूची में शामिल होना जिसमें पाइथन
- 15. अपाचे विकेट पुनरावर्तक: एक सिंहावलोकन
- 16. यह "[:: - 1]" पाइथन में एक उलटा सूची क्यों देता है?
- 17. ओपनऑफिस 3 में पाइथन 3
- 18. डेटा फ्रेम या सरणी के बजाय लगभग एक सूची क्यों लौटाता है?
- 19. एक std :: multimap में अद्वितीय कुंजी भर में एक पुनरावर्तक है?
- 20. एक पुनरावर्तक कैसे क्लोन करें?
- 21. एक पुनरावर्तक में साइड इफेक्ट्स हानिकारक माना जाता है?
- 22. पायथन नकारात्मक सूची अनुक्रमणिका क्यों लौटाता है?
- 23. पायथन 3 में xreadlines() का विकल्प क्या है?
- 24. पाइथन एक एमपी 3 फ़ाइल खोल सकता है
- 25. क्या रीडलाइन को आर
- 26. एक सूची
- 27. 'रीडलाइन'
- 28. पाइथन 3 की 'रेंज' को पाइथन 2 में "बैकपोर्टिंग" एक बुरा विचार है?
- 29. एक रूबी विधि एक पुनरावर्तक के रूप में उपज या संदर्भ के आधार पर एक सरणी वापस कर सकते हैं?
- 30. DateTimeInfo.MonthNames एक 13 सदस्य क्यों लौटाता है?
मैं उम्मीद होती है कि किसी को भी f.xreadlines में लाइन के लिए 'जो उपयोग कर रहा था() : 'साल पहले एफ में लाइन के लिए इसे बदल दिया जाएगा। –
@ जॉन माचिन: मुझे भी उम्मीद है (हालांकि शायद इसकी उम्मीद नहीं है!) मेरा मतलब यह नहीं था कि 'xreadlines' पायथन 2 में ऐसा करने का पसंदीदा तरीका था - इसे पायथन 2.3 में वापस हटा दिया गया था फाइल-ए-इटरेटर विधि पेश की गई थी। मैं सिर्फ कारण था कि इसे पायथन 3 में हटाया जा सकता है। –
मैंने केवल एक सप्ताह पहले फाइलों को अपने स्वयं के इटेटरेटर्स की खोज की थी :(मुझे लगता है कि 1.5 के बाद से ट्यूटोरियल/रिलीज नोट्स को देखने के लिए मुझे सही काम नहीं करता है। – wbg