windows - Python syntaksfejl i e-mail-udtræk script

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg fandt dette python script på metafilter og ændrede adresserne og passerer efter behov, men jeg får en scriptfejl ved den sidste linje. I fejlen er symbolet for lille karat under citatet efter print '\ n [4]


Ikke at være en coder overhovedet, jeg har ingen idé om, hvornår man skal dreje næste. Enhver hjælp ville blive meget værdsat.


Hvad jeg egentlig vil gøre er at trække 'Fra' adresserne og ikke til og CC, men jeg regnede med at jeg ville få det til at fungere korrekt først.


Script blev kørt i Windows ved hjælp af Python 3.2 og omdirigeret output til en tekstfil.


import email
import getpass
import imaplib

HOST = "mail.-----.com"
USER = "sales@-----.com"
FOLDER = "Folder"

connection = imaplib.IMAP4\_SSL(HOST)
res, data = connection.login(USER, getpass.getpass())
assert res == "OK"

res, count = connection.select(FOLDER)
assert res == "OK"

res, (msg\_nums,) = connection.search(None, "ALL")
assert res == "OK"

for msg\_num in msg\_nums.split():
    res, message\_text = connection.fetch(msg\_num, "(RFC822)")
    assert res == "OK"

    message = email.message\_from\_string(message\_text[0][1])
    tos = message.get\_all("From") or []
    ccs = message.get\_all("Cc") or []
    all\_recipients = email.Utils.getaddresses(tos + ccs)
    print "
".join(addr.lower() for realname, addr in all\_recipients)

Bedste reference


print er en funktion i Python 3, så det skal være:


print("
".join(addr.lower() for realname, addr in all\_recipients))


Scriptet blev sandsynligvis oprindeligt skrevet til brug med Python 2.x.