web-dev-qa-db-fra.com

Python, ajoute des éléments d'un fichier txt à une liste

Disons que j'ai une liste vide myNames = []

Comment puis-je ouvrir un fichier avec des noms sur chaque ligne et lire chaque nom dans la liste?

comme:

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

Lire la documentation :

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

Les autres ont déjà fourni des réponses sur la façon de se débarrasser du caractère newline.

Mettre à jour:

Fred Larson fournit une solution intéressante dans son commentaire:

with open('names.txt', 'r') as f:
    myNames = [line.strip() for line in f]
35
Felix Kling
f = open('file.txt','r')

for line in f:
    myNames.append(line.strip()) # We don't want newlines in our list, do we?
7
Robus
names=[line.strip() for line in open('names.txt')]
3
dugres

Cela devrait être un bon cas pour la carte et lambda

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

Je reste corrigé (ou au moins amélioré). La compréhension des listes est encore plus élégante

with open ('names.txt','r') as f :
    Names = [name.rstrip() for name in f]
1
peterb
#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)
1
user3600641

La façon pythonique de lire un fichier et de mettre toutes les lignes dans une liste:

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())
0
Ssein
Names = []
for line in open('names.txt','r').readlines():
    Names.append(line.strip())

strip () coupe les espaces avant et après la chaîne ...

0
Lauro Oliveira