दिलचस्प पोस्ट
जावास्क्रिप्ट: फ़ाइल अपलोड करें एक्सेल दस्तावेज़ के लिए माइम प्रकार सेट करना एंड्रॉइड में कैसे एन्क्रिप्ट और डिक्रिप्ट फ़ाइल? Baseadapter का उपयोग करके listview को कैसे अनुकूलित करें एक पायथन वैरिएबल के प्रकार का निर्धारण कैसे करें? तारीख स्ट्रिंग्स या ऑब्जेक्ट्स की सॉर्ट करें NSArray पुश अधिसूचना का एफसीएम अनुसूची वितरण तिथि या समय कॉमा ऑपरेटर कब उपयोगी है? यह नया asp.NET सुरक्षा भेद्यता कितनी गंभीर है और मैं इसे कैसे हल कर सकता हूँ? क्या $ _SERVER PHP में मौजूद है या नहीं? मैं सी # में एक गुमनाम वस्तु के गुणों को कैसे पुनरावृत्त करता हूं? Preg_replace_callback के साथ पदावनत preg_replace / e को बदलें एडीबी एंड्रॉइड डिवाइस अनधिकृत क्या एक सबडोमेन पर आधारित एएसपी.नेट एमवीसी रूट बनाना संभव है? 'अनपैक करने के लिए बहुत अधिक मूल्य', एक डिक्ट पर फिर से चलना कुंजी => स्ट्रिंग, मान => सूची

\ N से छुटकारा पा रहा है जब .readlines ()

मेरे पास एक .txt फ़ाइल है जिसमें इसमें मान हैं I

मान इसी तरह सूचीबद्ध हैं:

Value1 Value2 Value3 Value4 

मेरा लक्ष्य मूल्यों को सूची में डालना है जब मैं ऐसा करता हूं, तो सूची इस प्रकार दिखती है:

['Value1\n', 'Value2\n', ...]

\n की आवश्यकता नहीं है

यहां मेरा कोड है:

 t = open('filename.txt', 'r+w') contents = t.readline() alist = [] for i in contents: alist.append(i) 

वेब के समाधान से एकत्रित समाधान "\ N से छुटकारा पा रहा है जब .readlines ()"

यह आपको करना चाहिए (एक सूची में फ़ाइल सामग्री, पंक्ति के बिना, बिना \ n)

 with open(filename) as f: mylist = f.read().splitlines() 

मैं यह करूँगा:

 alist = [line.rstrip() for line in open('filename.txt')] 

या:

 with open('filename.txt') as f: alist = [line.rstrip() for line in f] 

आप स्ट्रिंग के अंत से केवल नई लाइनें निकालने के लिए .rstrip('\n') का उपयोग कर सकते हैं:

 for i in contents: alist.append(i.rstrip('\n')) 

यह अन्य सभी सफेद स्थान को बरकरार छोड़ देता है यदि आप अपनी लाइनों के शुरू और अंत में सफेद स्थान की परवाह नहीं करते हैं, तो बड़ी भारी हथौड़ा को बुलाया जाता है। .strip()

हालांकि, जब से आप किसी फ़ाइल से पढ़ रहे हैं और हर चीज को स्मृति में खींच रहे हैं, str.splitlines() विधि का उपयोग करने के लिए बेहतर; यह लाइन विभाजक पर एक स्ट्रिंग को विभाजित करता है और उन विभाजकों के बिना लाइनों की एक सूची देता है; इसे file.read() पर file.read()file.read() परिणाम और file.readlines() उपयोग न करें। file.readlines() बिल्कुल भी:

 alist = t.read().splitlines() 

अपनी सूची में प्रत्येक स्ट्रिंग के लिए, .strip() उपयोग करें जो स्ट्रिंग की शुरुआत या अंत से सफेद स्थान को निकालता है:

 for i in contents: alist.append(i.strip()) 

लेकिन आपके उपयोग के मामले के आधार पर, यदि आप फ़ाइल से पढ़ रहे डेटा की एक अच्छी सरणी की ज़रूरत है, तो आप शायद कुछ जैसे numpy.loadtxt या numpy.loadtxt का उपयोग कर बेहतर हो सकते हैं।

 from string import rstrip with open('bvc.txt') as f: alist = map(rstrip, f) 

नोट rstrip() : rstrip() सफेद स्थान को हटा देता है, जिसका अर्थ है: \f , \n , \r , \t , \v , \x और खाली ,
लेकिन मुझे लगता है कि आप केवल लाइनों में महत्वपूर्ण अक्षरों को रखने में रुचि रखते हैं फिर, केवल map(strip, f) बेहतर फिट होगा, शीर्ष स्थान वाले सफेद स्थान को भी निकाल देगा


यदि आप वास्तव में केवल एनएल \n और आरएफ \r प्रतीकों को खत्म करना चाहते हैं, तो करें:

 with open('bvc.txt') as f: alist = f.read().splitlines() 

विवाद के बिना विभाजन () एनएल और आरएफ प्रतीकों को नहीं रखता है (विंडोज़ एनएलआरएफ के साथ फ़ाइलों को अपने मशीन पर कम से कम लाइनों के अंत में रिकॉर्ड करता है), लेकिन अन्य सफेद स्थान, विशेष रूप से रिक्त स्थान और टैब को रखता है।

 with open('bvc.txt') as f: alist = f.read().splitlines(True) 

के रूप में एक ही प्रभाव है

 with open('bvc.txt') as f: alist = f.readlines() 

यह कहना है कि एनएल और आरएफ रखा जाता है

मुझे एक ही समस्या थी और मुझे निम्नलिखित समाधान बहुत कुशल होने के लिए मिला। मुझे उम्मीद है कि यह आपको या बाकी सबको मदद करेगा जो एक ही काम करना चाहता है

सबसे पहले, मैं "के साथ" कथन के साथ शुरू होगा क्योंकि यह फ़ाइल के उचित खुला / बंद सुनिश्चित करता है

यह कुछ इस तरह दिखना चाहिए:

 with open("filename.txt", "r+") as f: contents = [x.strip() for x in f.readlines()] 

यदि आप उन स्ट्रिंग्स को परिवर्तित करना चाहते हैं (सामग्री सूची में प्रत्येक वस्तु एक स्ट्रिंग है) पूर्णांक या फ्लोट में आप निम्न कार्य कर सकते हैं:

 contents = [float(contents[i]) for i in range(len(contents))] 

यदि आप पूर्णांक में कनवर्ट करना चाहते हैं तो float बजाय int उपयोग करें

यह मेरा पहला जवाब SO में है, इसलिए खेद है अगर यह उचित स्वरूपण में नहीं है।

मैंने हाल ही में एक फाइल से सभी लाइनों को पढ़ने के लिए इसका इस्तेमाल किया है:

 alist = open('maze.txt').read().split() 

या आप अतिरिक्त अतिरिक्त सुरक्षा के उस छोटे से उपयोग के लिए इसका उपयोग कर सकते हैं:

 with f as open('maze.txt'): alist = f.read().split() 

यह किसी एकल पंक्ति में पाठ के बीच में सफेद स्थान के साथ काम नहीं करता है, लेकिन ऐसा लगता है कि आपकी उदाहरण फ़ाइल में व्हाट्सएस बंटेटिंग वैल्यू नहीं हो सकती। यह एक सरल समाधान है और यह मूल्यों की एक सटीक सूची देता है, और खाली स्ट्रिंग नहीं जोड़ता है: '' हर खाली पंक्ति के लिए, जैसे फ़ाइल के अंत में एक नई पंक्ति

फ़ाइल खोलने के बाद, सूची की समझ एक पंक्ति में यह कर सकती है:

 fh=open('filename') newlist = [line.rstrip() for line in fh.readlines()] fh.close() 

बस बाद में अपनी फाइल को बंद करने के लिए याद रखना

 with open('D:\\file.txt', 'r') as f1: lines = f1.readlines() lines = [s[:-1] for s in lines] 

मैंने स्ट्रैप फ़ंक्शन का उपयोग नए रेखा से छुटकारा पाने के लिए के रूप में विभाजित लाइन 4 जीबी फाइल पर मेमोरी त्रुटियों को फेंक रहा था।

नमूना कोड:

 with open('C:\\aapl.csv','r') as apple: for apps in apple.readlines(): print(apps.strip()) 

ऐसा करने का सबसे आसान तरीका है file.readline()[0:-1] लिखना file.readline()[0:-1] यह अंतिम वर्ण को छोड़कर सब कुछ पढ़ा जाएगा, जो कि नई लाइन है