दिलचस्प पोस्ट
किसी Google Maps URL में किसी अक्षांश में जाने के लिए मुझे कौन से पैरामीटर उपयोग करना चाहिए? कैसे winform DataGridview हेडर का रंग बदलने के लिए? कॉलस्क्रिप्ट मॉड्यूल के अंदर एक ग्लोबल वैरिएबल कॉल करें जावा रीगेक्स मैच गिनती Android Gradle प्लगइन 0.7 के साथ एनडीके को कॉन्फ़िगर कैसे करें जावा में सीमांकित वस्तुओं की एक स्ट्रिंग बनाने का सबसे अच्छा तरीका क्या है? मूल्य पर नेस्टेड सूची में एक सूची को विभाजित करें एक्सेल डेटा पत्रक को ओरेकल डाटाबेस में लोड करें सी ++ थ्रेड पूल यूट्यूब iframe खिलाड़ी एपीआई – ऑनस्टेट चेंज नहीं फायरिंग अनुमति अस्वीकृति: इसमें एंड्रॉइड पिरमिशन की आवश्यकता है। INTERACT_ACROSS_USERS_FULL कैसे जावास्क्रिप्ट में एक वैश्विक चर घोषित करने के लिए? बूटस्ट्रैप 3 नेबार में ब्रांड लोगो को केंद्रित करना PHP में समय अपलोड अपलोड कर सकता है? देखें का चयन FROM खंड में एक subquery शामिल है

मैं एक सूची में फ़ाइल लाइन-बाय-लाइन कैसे पढ़ूं?

मैं एक फ़ाइल की हर पंक्ति को पायथन में कैसे पढ़ूं और प्रत्येक पंक्ति को एक सूची में एक तत्व के रूप में संग्रहित करूँ?

मैं लाइन से फ़ाइल लाइन को पढ़ना चाहता हूं और प्रत्येक पंक्ति को सूची के अंत में जोड़ना चाहता हूं।

Solutions Collecting From Web of "मैं एक सूची में फ़ाइल लाइन-बाय-लाइन कैसे पढ़ूं?"

 with open(fname) as f: content = f.readlines() # you may also want to remove whitespace characters like `\n` at the end of each line content = [x.strip() for x in content] 

मुझे लग रहा है कि आप list और सरणी नहीं चाहते थे।

इनपुट और ओउपट देखें:

 with open('filename') as f: lines = f.readlines() 

या नए चरित्र को अलग करना:

 lines = [line.rstrip('\n') for line in open('filename')] 

संपादक का नोट: इस उत्तर के मूल श्वेतस्थान-स्ट्रिपिंग कमांड, line.strip() , जो जनास ट्रॉल्सन की टिप्पणी से निहित है, न केवल पीछे की तरफ \n , सभी प्रमुख और पिछड़े सफेद स्थान को हटा देगा।

यह आवश्यक से अधिक स्पष्ट है, लेकिन जो आप चाहते हैं वह करता है।

 with open("file.txt", "r") as ins: array = [] for line in ins: array.append(line) 

यह फ़ाइल से पंक्तियों की "सरणी" उत्पन्न करेगा।

 lines = tuple(open(filename, 'r')) 

यदि आप \n शामिल करना चाहते हैं:

 with open(fname) as f: content = f.readlines() 

यदि आप नहीं चाहते हैं \n शामिल है:

 with open(fname) as f: content = f.read().splitlines() 

आप बस निम्न कर सकते हैं, जैसा कि सुझाव दिया गया है:

 with open('/your/path/file') as f: my_lines = f.readlines() 

ध्यान दें कि इस दृष्टिकोण में 2 डाउनसाइड्स हैं:

1) आप स्मृति में सभी पंक्तियों को संग्रहीत करते हैं सामान्य मामले में, यह बहुत बुरा विचार है फ़ाइल बहुत बड़ी हो सकती है, और आप मेमोरी से बाहर निकल सकते हैं। यहां तक ​​कि अगर यह बड़ा नहीं है, तो यह केवल स्मृति की बर्बादी है

2) यह प्रत्येक लाइन के प्रसंस्करण की अनुमति नहीं देता जैसा कि आप पढ़ते हैं। इसलिए यदि आप इसके बाद अपनी लाइनें संसाधित करते हैं, तो यह कुशल नहीं है (एक के बजाय दो पास की आवश्यकता है)।

सामान्य मामले के लिए एक बेहतर दृष्टिकोण निम्नलिखित होगा:

 with open('/your/path/file') as f: for line in f: process(line) 

जहां आप अपनी प्रक्रिया को परिभाषित करते हैं, किसी भी तरह से आप चाहते हैं। उदाहरण के लिए:

 def process(line): if 'save the world' in line.lower(): superman.save_the_world() 

( Superman क्लास का क्रियान्वयन आपके लिए एक अभ्यास के रूप में छोड़ दिया गया है)।

यह किसी भी फ़ाइल आकार के लिए अच्छी तरह से काम करेगा और आप केवल 1 पास में अपनी फ़ाइल के माध्यम से जाते हैं यह आमतौर पर सामान्य पेसर्स कैसे काम करेगा।

अगर आपको फाइल बंद करने की परवाह नहीं है, तो यह एक लाइनर काम करता है:

 lines = open('file.txt').read().split("\n") 

पारंपरिक तरीके:

 fp = open('file.txt') # open file on read mode lines = fp.read().split("\n") # create a list containing all lines fp.close() # close file 

(अनुशंसित) के with प्रयोग करना:

 with open('file.txt') as fp: lines = fp.read().split("\n") 

इसे खुले कमान में समापित करना चाहिए।

 array = [] with open("file.txt", "r") as f: for line in f: array.append(line) 

एक सूची में एक फाइल की पंक्तियों को पढ़ने का स्वच्छ और पायथनिक तरीका


सबसे पहले, आपको अपनी फ़ाइल खोलने और उसकी सामग्री को एक कुशल और अजगर तरीके से पढ़ने पर ध्यान देना चाहिए। मैं जिस तरह से व्यक्तिगत रूप से पसंद नहीं करता हूं, उसका एक उदाहरण यहां दिया गया है:

 infile = open('my_file.txt', 'r') # Open the file for reading. data = infile.read() # Read the contents of the file. infile.close() # Close the file since we're done using it. 

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

 # Open the file for reading. with open('my_file.txt', 'r') as infile: data = infile.read() # Read the contents of the file into memory. 

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

 # Return a list of the lines, breaking at line boundaries. my_list = data.splitlines() 

अंतिम उत्पाद:

 # Open the file for reading. with open('my_file.txt', 'r') as infile: data = infile.read() # Read the contents of the file into memory. # Return a list of the lines, breaking at line boundaries. my_list = data.splitlines() 

हमारे कोड का परीक्षण करना:

  • पाठ फ़ाइल की सामग्री:
  A fost odatã ca-n povesti, A fost ca niciodatã, Din rude mãri împãrãtesti, O prea frumoasã fatã. 
  • परीक्षण प्रयोजनों के लिए प्रिंट स्टेटमेंट:
  print my_list # Print the list. # Print each line in the list. for line in my_list: print line # Print the fourth element in this list. print my_list[3] 
  • आउटपुट (यूनिकोड वर्णों की वजह से अलग-अलग दिख रहे हैं):
  ['A fost odat\xc3\xa3 ca-n povesti,', 'A fost ca niciodat\xc3\xa3,', 'Din rude m\xc3\xa3ri \xc3\xaemp\xc3\xa3r\xc3\xa3testi,', 'O prea frumoas\xc3\xa3 fat\xc3\xa3.'] A fost odatã ca-n povesti, A fost ca niciodatã, Din rude mãri împãrãtesti, O prea frumoasã fatã. O prea frumoasã fatã. 

मैं इसे ऐसा करना चाहता हूं।

 lines = [] with open("myfile.txt") as f: for line in f: lines.append(line) 

एक और विकल्प numpy.genfromtxt , उदाहरण के लिए:

 import numpy as np data = np.genfromtxt("yourfile.dat",delimiter="\n") 

इससे data को आपकी फाइल में जितनी पंक्तियों के साथ एक NumPy array होगा।

फाइलों पर सूची की समझों का उपयोग करके यहां एक और विकल्प है;

 lines = [line.rstrip() for line in open('file.txt')] 

यह अधिक कुशल तरीके से होना चाहिए क्योंकि अधिकांश काम पायथन इंटरप्रेटर के अंदर किया जाता है।

यदि आप कमांड लाइन या stdin से कोई फ़ाइल पढ़ना चाहते हैं, तो आप फ़ाइल fileinput मॉड्यूल का उपयोग भी कर सकते हैं:

 # reader.py import fileinput content = [] for line in fileinput.input(): content.append(line.strip()) fileinput.close() 

इस तरह फाइलें पास करें:

 $ python reader.py textfile.txt 

यहां और पढ़ें: http://docs.python.org/2/library/fileinput.html

सूची में डेटा

चलिए एक पाठ फ़ाइल से डेटा पढ़ा

पाठ फ़ाइल सामग्री:

  line 1 of txt line 2 of txt line 3 of txt 
  1. उसी डायरेन्ट में सीएमडी खोलें (राइट क्लिक करें माउस और सीएमडी या पॉर्शहेल चुनें)
  2. अजगर चलाने और दुभाषिया में लिखें:

अजगर स्क्रिप्ट

 >>> with open("myfile.txt", encoding="utf-8") as file: ... x = [l.strip() for l in file] >>> ['line 1 of txt','line 2 of txt','line 3 of txt'] 

एपेंड का उपयोग करना

 x = [] with open("myfile.txt") as file: for l in file: x.append(l.strip()) 

अजगर 3 के साथ एक वेब पेज से एक टेक्स्ट प्राप्त करना

यहां नेट से पकड़े हुए पाठ का एक आदर्श उदाहरण है पृष्ठ में सिर्फ सादा पाठ है हमें \ N \ r और b 'वस्तु से छुटकारा पाने की जरूरत है, इसमें इसे छापने के लिए साफ रखने के लिए। डेटा को स्ट्रिंग के लिए बाइट्स डेटा का रूपांतरण होता है और फिर स्ट्रिंग लाइनों में फैली हुई है या बेहतर है, प्रत्येक पंक्ति को सूची के किसी आइटम में संग्रहीत किया जाता है। जब प्रिंट फ़ंक्शन को बुलाया जाता है, तो हम \ r और \ 'and b' चीजों के बिना सूची में से प्रत्येक आइटम को पास करते हैं जो पाठ को कम पुन: योग्य बनाते हैं।

 from urllib.request import urlopen testo = urlopen("https://www.gutenberg.org/files/11/11.txt").read() testo = str(testo).split("\\n") >>> for l in testo[:15]: ... print(l.replace("\\r","").replace("\\'","\'").replace("b'","") ... ) ... Project Gutenberg's Alice's Adventures in Wonderland, by Lewis Carroll This eBook is for the use of anyone anywhere at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org Title: Alice's Adventures in Wonderland Author: Lewis Carroll Posting Date: June 25, 2008 [EBook #11] Release Date: March, 1994 [Last updated: December 20, 2011] 

ऐसा करने का सबसे आसान तरीका

एक सरल तरीका यह है:

  1. संपूर्ण फ़ाइल को स्ट्रिंग के रूप में पढ़ें
  2. रेखा से स्ट्रिंग रेखा को विभाजित करें

एक पंक्ति में, वह देगी:

 lines = open('C:/path/file.txt').read().splitlines() 
 f = open("your_file.txt",'r') out = f.readlines() # will append in the list out 

अब वेरिएबल आउट एक सूची (अरै) है जो आप चाहते हैं। आप या तो कर सकते हैं:

 for line in out: print line 

या

 for line in f: print line 

आप एक ही परिणाम प्राप्त करेंगे

सिर्फ स्प्लिटलाइन () फ़ंक्शंस का उपयोग करें यहाँ एक उदाहरण है।

 inp = "file.txt" data = open(inp) dat = data.read() lst = dat.splitlines() print lst # print(lst) # for python 3 

आउटपुट में आपके पास लाइनों की सूची होगी

एक असली आसान तरीका:

 with open(file) as g: stuff = g.readlines() 

यदि आप इसे एक पूर्णतः विकसित कार्यक्रम बनाना चाहते हैं, तो इसमें टाइप करें:

 file = raw_input ("Enter EXACT file name: ") with open(file) as g: stuff = g.readlines() print (stuff) exit = raw_input("Press enter when you are done.") 

किसी कारण के लिए, यह ठीक से।

यदि आप एक बहुत बड़ी / बड़ी फाइल का सामना करना चाहते हैं और तेजी से पढ़ना चाहते हैं (कल्पना करें कि आप एक टॉपकोडर / हैकैरिक कोडिंग प्रतियोगिता में हैं), तो आप एक बार में मेमोरी बफर में एक बहुत बड़ी मात्रा को पढ़ सकते हैं बस फ़ाइल स्तर पर रेखा से लाइन को पुनरावृत्त करें

 buffersize = 2**16 with open(path) as f: while True: lines_buffer = f.readlines(buffersize) if not lines_buffer: break for line in lines_buffer: process(line) 

मेरी जानकारी के लिए पायथन में कोई मूल सरणी डेटा संरचना नहीं है। लेकिन यह सूची डेटा संरचना का समर्थन करता है जो किसी सरणी से उपयोग करने के लिए बहुत आसान है।

 array = [] #declaring a list with name '**array**' with open(PATH,'r') as reader : for line in reader : array.append(line) 

आप बस अपनी फाइल को पढ़ने के लिए खोल सकते हैं

 file1 = open("filename","r") # and for reading use lines = file1.readlines() file1.close() 

सूची पंक्तियों में आपकी सभी पंक्तियों को अलग-अलग तत्वों के रूप में शामिल किया जाएगा और आप lines["linenumber-1"] का उपयोग करके एक विशिष्ट तत्व को कॉल कर सकते हैं क्योंकि अजगर 0 से इसकी गणना शुरू कर देता है।

इसे इस्तेमाल करो:

 import pandas as pd data = pd.read_csv(filename) # You can also add parameters such as header, sep, etc. array = data.values 

data एक डेटाफ्रेम प्रकार है, और ndarray पाने के लिए मान का उपयोग करता है। आप array.tolist() का उपयोग करके एक सूची भी प्राप्त कर सकते हैं

Numpy में loadtxt कमांड भी इस्तेमाल कर सकते हैं। यह genfromtxt की तुलना में कम शर्तों के लिए जांचता है ताकि यह तेज़ हो।

 import numpy data = numpy.loadtxt(filename,delimiter="\n") 

आप इसे आसानी से कोड के निम्नलिखित भाग से कर सकते हैं:

 lines = open(filePath).readlines() 

कमांड लाइन संस्करण

 #!/bin/python3 import os import sys abspath = os.path.abspath(__file__) dname = os.path.dirname(abspath) filename = dname + sys.argv[1] arr = open(filename).read().split("\n") print(arr) 

साथ दौड़ो:

 python3 somefile.py input_file_name.txt 
 lines = list(open("dict.lst", "r")) linesSanitized = map(lambda each:each.strip("\n"), lines) print linesSanitized 
 with open(fname) as fo: data=fo.read().replace('\n', ' ').replace (',', ' ') 

यह आपके प्रश्न का उत्तर देना चाहिए। प्रतिस्थापन फ़ंक्शन फ़ाइल को पट्टी करने के लिए सीमांकक के रूप में कार्य करेगा।

 textFile = open("E:\Values.txt","r") textFileLines = textFile.readlines() 

"टेक्स्टफ़ाइललाइनें" वह सरणी है जिसे आप चाहते थे

कैसा रहेगा:

 fp = open("filename") content = fp.read(); lines = content.split("\n") 

यूनिक्स जैसी विधि घोषित करें:

 def cat(filename): with open(filename) as f: return f.read().decode('utf-8') 

और बस फ़ाइल सामग्री प्राप्त करने के लिए इसे आमंत्रित करें।

 content = cat(filename)