2010-06-29 15 views

Respuesta

30

Leer el documentation:

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

Los otros ya previstos respuestas de cómo deshacerse del carácter de nueva línea.

actualización:

Fred Larson ofrece una buena solución en su comentario:

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

cambio 'abierta (archivo, 'r')' a 'abierto (' names.txt ',' r ') '. 'file' es un tipo de compilación que tampoco debe usarse como nombre de variable ... De lo contrario, es una buena solución. – tux21b

+0

@ tux21b: tienes razón, gracias. –

+3

Si quisiéramos incorporar el 'strip' en esta solución, probablemente lo haría así:' myNames = [line.strip() for line in 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()) 

banda (espacios) cortados en antes y después de la cadena de ...

+1

Está iterando dos veces sobre el contenido del archivo ... –

3
names=[line.strip() for line in open('names.txt')] 
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

Esto debería ser un buen caso para el mapa y lambda

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

mi error (o al menos mejorado). Las listas por comprensión es aún más elegante

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

La forma Pythonic para leer un archivo y poner todas las líneas en una lista:

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()) 
Cuestiones relacionadas