J'ai essayé de créer un programme de recherche d'adresses email dans un fichier texte.Après avoir utilisé pyperclip je peux copier seulement la dernière adresse email mais je veux copier tous les emails dans le presse-papier.Comment puis-je faire ceci.Et aussi je voudrais essayer une autre façon de faire ceci si vous avez une meilleure façon de faire cette chose s'il vous plaît laissez-moi savoir aussi.En passant j'ai un autre fichier texte qui contient un fichier texte avec des emails.Et j'utilise cette gitlist pour faire ce programme en python. lien gitlist
from optparse
import OptionParser
import os.path
import re
import pyperclip
regex = re.compile(("([a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`"
"{|}~-]+)*(@|\sat\s)(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(\.|"
"\sdot\s))+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)"))
def file_to_str(filename):
"""Returns the contents of filename as a string."""
with open(filename) as f:
return f.read().lower() # Case is lowered to prevent regex mismatches.
def get_emails(s):
"""Returns an iterator of matched emails found in string s."""
# Removing lines that start with '//' because the regular expression
# mistakenly matches patterns like 'http://foo@bar.com' as '//foo@bar.com'.
return (email[0] for email in re.findall(regex, s) if not email[0].startswith('//'))
if __name__ == '__main__':
parser = OptionParser(usage="Usage: python %prog [FILE]...")
# No options added yet. Add them here if you ever need them.
options, args = parser.parse_args()
if not args:
parser.print_usage()
exit(1)
for arg in args:
if os.path.isfile(arg):
for email in get_emails(file_to_str(arg)):
print(email)
pyperclip.copy(email)
else:
print('"{}" is not a file.'.format(arg))
parser.print_usage()