J'ai un fichier texte simple avec plusieurs milliers de mots, chacun dans sa propre ligne, par exemple.
aardvark
hello
piper
J'utilise le code suivant pour charger les mots dans un ensemble (j'ai besoin de la liste des mots pour tester l'adhésion, c'est donc la structure de données que j'ai choisie):
my_set = set(open('filename.txt'))
Le code ci-dessus produit un ensemble avec les entrées suivantes (chaque mot est suivi d'un caractère et d'un caractère de nouvelle ligne:
("aardvark \n", "hello \n", "piper \n")
Quel est le moyen le plus simple de charger le fichier dans un ensemble mais de vous débarrasser de l'espace et\N?
Merci
Il suffit de charger toutes les données de fichier et de la diviser, elle s'occupera d'un mot par ligne ou de mots multiples par ligne séparés par des espaces, il sera également plus rapide de charger un fichier entier à la fois, à moins que votre fichier soit en GBS.
words = set(open('filename.txt').read().split())
Pour enlever uniquement les espaces de droite.
set(map(str.rstrip, open('filename.txt')))
with open("filename.txt") as f:
s = set([line.rstrip('\n') for line in f])
with open("filename.txt") as f:
mySet = map(str.rstrip, f)
Si vous souhaitez utiliser cela dans Python 2.5, vous avez besoin
from __future__ import with_statement