2010-06-29 25 views
10

कहो मैं एक खाली सूची है myNames = []अजगर, एक सूची

मैं कैसे प्रत्येक पंक्ति पर नाम के साथ एक फ़ाइल को खोलने और सूची में प्रत्येक नाम पर पढ़ सकते हैं में पाठ फ़ाइल से आइटम जोड़ने?

की तरह:

>  names.txt 
>  dave 
>  jeff 
>  ted 
>  myNames = [dave,jeff,ted] 

उत्तर

30

पढ़ें documentation:

with open('names.txt', 'r') as f: 
    myNames = f.readlines() 

दूसरों को पहले से ही जवाब कैसे प्रदान की न्यू लाइन चरित्र से छुटकारा पाने के।

अद्यतन:

Fred Larson उसकी टिप्पणी में एक अच्छा समाधान प्रदान करता है:

with open('names.txt', 'r') as f: 
    myNames = [line.strip() for line in f] 
+1

परिवर्तन 'खुला (फ़ाइल,' आर ') names.txt ',' r ') '। 'फाइल' एक बिल्ड-इन प्रकार है जिसे वैरिएबल नाम के रूप में इस्तेमाल नहीं किया जाना चाहिए ... अन्यथा, अच्छा समाधान। – tux21b

+0

@ tux21b: आप सही हैं, धन्यवाद। –

+3

अगर हम इस समाधान में 'स्ट्रिप' को शामिल करना चाहते हैं, तो शायद मैं ऐसा करता हूं: 'myNames = [line.strip() f में लाइन के लिए] '। प्रलेखन को जोड़ने के लिए –

5
f = open('file.txt','r') 

for line in f: 
    myNames.append(line.strip()) # We don't want newlines in our list, do we? 
0
Names = [] 
for line in open('names.txt','r').readlines(): 
    Names.append(line.strip()) 

पट्टी() से पहले में और स्ट्रिंग के बाद कटौती रिक्त स्थान ...

+1

आप फ़ाइल सामग्री पर दो बार पुनरावृत्त कर रहे हैं ... –

0
#function call 
read_names(names.txt) 
#function def 
def read_names(filename): 
with open(filename, 'r') as fileopen: 
    name_list = [line.strip() for line in fileopen] 
    print (name_list) 
0

इस नक्शे और लैम्ब्डा

with open ('names.txt','r') as f : 
    Names = map (lambda x : x.strip(),f_in.readlines()) 

मैं ठीक किया स्टैंड (या कम से कम सुधार) के लिए एक अच्छा मामला होना चाहिए। सूची comprehensions और भी अधिक सुंदर है

with open ('names.txt','r') as f : 
    Names = [name.rstrip() for name in f] 
0

एक फ़ाइल को पढ़ने और एक सूची में हर लाइनों डाल करने के लिए pythonic तरीका: `` खुला करने के लिए ('

from __future__ import with_statement #for python 2.5 
Names = [] 
with open('C:/path/txtfile.txt', 'r') as f: 
    lines = f.readlines() 
    Names.append(lines.strip()) 
संबंधित मुद्दे