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]
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]
f = open('file.txt','r')
for line in f:
myNames.append(line.strip()) # We don't want newlines in our list, do we?
names=[line.strip() for line in open('names.txt')]
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]
#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)
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())
Names = []
for line in open('names.txt','r').readlines():
Names.append(line.strip())
strip () coupe les espaces avant et après la chaîne ...