J'ai deux longue liste, l'un à partir d'un fichier journal qui contient des lignes formatées commeComment obtenir la différence entre deux listes en fonction des sous-chaînes withing chaque chaîne dans les listes séparées
201001050843 blah blah blah <[email protected]> blah blah
et un second fichier en format csv. J'ai besoin de générer une liste de toutes les entrées dans le fichier 2 qui ne contiennent pas d'adresse e-mail dans le fichier journal, tout en conservant le format csv.
Exemple
fichier journal contient:
201001050843 blah blah blah <[email protected]> blah blah
201001050843 blah blah blah <[email protected]> blah blah
Fichier2 contient:
156456,bob,sagget,[email protected],4564456
156464,bob,otherguy,[email protected],45644562
la sortie doit être:
156464,bob,otherguy,[email protected],45644562
Actuellement je prends les e-mails du journal et la charge dans une autre liste avec:
sent_emails =[]
for line in sent:
try:
temp1= line.index('<')
temp2 = line.index('>')
sent_emails.append(line[temp1+1:temp2])
except ValueError:
pass
Et puis comparer à file2 avec soit:
lista = mail_lista.readlines()
for line in lista:
temp = line.split()
for thing in temp:
try:
if thing.index('@'):
if thing in sent_emails:
lista.remove(temp)
except ValueError:
pass
newa.writelines(lista)
ou:
for line in mail_listb:
temp = line.split()
for thing in temp:
try:
if thing.index('@'):
if thing not in sent_emails:
newb.write(line)
except ValueError:
pass
Toutefois, les deux reviennent tous fichier2!
Merci pour toute aide que vous pouvez donner. Merci pour les recommandations pour les ensembles, il a fait une différence de vitesse plus grande que j'aurais pensé possible. Manière d'aller des tables de hachage! J'utiliserai plus souvent des décors à partir de maintenant.
parfait, même si mon problème était en fait une faute de frappe signalée par Aaron Digulla, cela répond à la question que j'ai posée d'une manière très claire, et m'a appris quelque chose. – Chance