दिलचस्प पोस्ट
जीयूआई एमवीसी को फिर से लिखने के बाद काम नहीं कर रहा है सीतनिद्रा में होना: कैसे एनोटेशन का उपयोग कर कस्टम अनुक्रम जनरेटर वर्ग नाम निर्दिष्ट करें? PHP मेलर के माध्यम से Gmail SMTP सर्वर का उपयोग करके ईमेल भेजें दो दिए गए नोड्स के बीच के रास्ते ढूंढें? ग्रहण – डिफ़ॉल्ट कीबोर्ड शॉर्टकट की सूची सशर्त शामिल करने के लिए लिंक्स में संस्थाओं? कैसे प्रोग्रामेटिक रूप से स्थानांतरित, प्रतिलिपि और एसडी पर फाइलों और निर्देशिका को हटाएं? मेमोरी संरेखण का उद्देश्य डिजाइन पैटर्न वेब आधारित अनुप्रयोग एसएसआईएस में एसक्यूएल सर्वर पर सबसे हालिया सीएसवी फ़ाइल आयात करें सशर्त अद्वितीय बाधा मूल सी ++ कोड की तुलना में इनलाइन असेंबली भाषा धीमी है? तैयार स्थिति और प्रदर्शन पेंट () और पेंटविरोध () के बीच का अंतर? आराम को समझना: क्रिया, त्रुटि कोड और प्रमाणीकरण

\ 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) 

Solutions Collecting From Web of "\ 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] यह अंतिम वर्ण को छोड़कर सब कुछ पढ़ा जाएगा, जो कि नई लाइन है