Eu tenho um arquivo de texto que contém alguns e-mails. Tudo isso começa da seguinte forma:
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
From: [email protected]
Meu problema era obter IDs de e-mail exclusivos, então tentei
fhand = open("mbox-short.txt")
emails=[]
for line in fhand:
if line.startswith("From:"):
l=line.lstrip("From:").rstrip()
emails.append(l)
unique = []
for email in emails:
if email not in unique:
unique.append(email)
print(email)
print("\nTotal Unique Contacts=",len(unique))
Saída-
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Total de contatos únicos = 11
qual é a resposta correta MAS-
quando usei um espaço extra em lstrip ("De:") porque o e-mail real começa depois de "De:", é isso que eu obtive-
fhand = open("mbox-short.txt")
emails=[]
for line in fhand:
if line.startswith("From:"):
l=line.lstrip("From: ").rstrip()
emails.append(l)
unique = []
for email in emails:
if email not in unique:
unique.append(email)
print(email)
print("\nTotal Unique Contacts=",len(unique))
Saída-
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Total de contatos únicos = 11
Portanto, vemos que os e-mails que começam com r são afetados, pois a primeira letra desaparece da saída, enquanto os outros não são afetados de forma alguma. Por favor me ajude a entender por que isso está acontecendo. Obrigado
Vamos começar examinando a documentação de lstrip
:
str. lstrip ([chars])
Retorne uma cópia da string com os caracteres iniciais removidos. O argumento chars é uma string que especifica o conjunto de caracteres a ser removido.
Isso significa a seguinte parte do seu código:
line.lstrip("From: ")
remove todas as ocorrências F
, r
, o
, m
, :
e espaços a partir da esquerda até encontrar outro personagem. Alguns exemplos:
>>> "From: [email protected]".lstrip("From: ")
'[email protected]'
>>> "From: [email protected]".lstrip("From: ")
'@example.com'
>>> " mmmrrroooFFF: [email protected]".lstrip("From: ")
'[email protected]'
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras