NameError: name 'ftp' is not defined, Python
NameError: name 'ftp' is not defined, Python
即使我声明了 ftp,我仍然收到此错误。
完整的错误信息如下:
File "./sFTPscript.py", line 173, in <module> main()
File "./sFTPscript.py", line 167, in main uploadFTP()
File "./sFTPscript.py", line 33, in uploadFTP ftp.pwd()
NameError: name 'ftp' is not defined
--
from ftplib import FTP
import os
import sys
import kunden.config as config
def connFTP():
ftp = FTP(config.host)
ftp.login(config.username,config.password)
print("connected")
def uploadFTP():
os.chdir(config.localpath)
ftp.pwd()
ftp.cwd('test')
list_local = os.listdir(config.localpath)
for file in list_local:
ftp.storbinary('STOR '+file, open(file,'rb'))
return list_local
def main():
connFTP()
uploadFTP()
if __name__ == '__main__':
main()
我试图在ftp使用它之前将其设为全局变量,但仍然出现相同的错误
ftp
在uploadFTP()
范围内不为人知。使用 class、全局变量(使用 global ftp
)或传递对象。后者可能是:
def connFTP():
ftp = FTP(config.host)
ftp.login(config.username,config.password)
print("connected")
return ftp
# ^^^
def uploadFTP(ftp=None):
os.chdir(config.localpath)
ftp.pwd()
ftp.cwd('test')
list_local = os.listdir(config.localpath)
for file in list_local:
ftp.storbinary('STOR '+file, open(file,'rb'))
return list_local
def main():
ftp = connFTP()
uploadFTP(ftp)
# ^^^
if __name__ == '__main__':
main()
另外,您没有对 uploadFTP()
返回的 list_local
做任何事情(还没有?)。
即使我声明了 ftp,我仍然收到此错误。
完整的错误信息如下:
File "./sFTPscript.py", line 173, in <module> main()
File "./sFTPscript.py", line 167, in main uploadFTP()
File "./sFTPscript.py", line 33, in uploadFTP ftp.pwd()
NameError: name 'ftp' is not defined
--
from ftplib import FTP
import os
import sys
import kunden.config as config
def connFTP():
ftp = FTP(config.host)
ftp.login(config.username,config.password)
print("connected")
def uploadFTP():
os.chdir(config.localpath)
ftp.pwd()
ftp.cwd('test')
list_local = os.listdir(config.localpath)
for file in list_local:
ftp.storbinary('STOR '+file, open(file,'rb'))
return list_local
def main():
connFTP()
uploadFTP()
if __name__ == '__main__':
main()
我试图在ftp使用它之前将其设为全局变量,但仍然出现相同的错误
ftp
在uploadFTP()
范围内不为人知。使用 class、全局变量(使用 global ftp
)或传递对象。后者可能是:
def connFTP():
ftp = FTP(config.host)
ftp.login(config.username,config.password)
print("connected")
return ftp
# ^^^
def uploadFTP(ftp=None):
os.chdir(config.localpath)
ftp.pwd()
ftp.cwd('test')
list_local = os.listdir(config.localpath)
for file in list_local:
ftp.storbinary('STOR '+file, open(file,'rb'))
return list_local
def main():
ftp = connFTP()
uploadFTP(ftp)
# ^^^
if __name__ == '__main__':
main()
另外,您没有对 uploadFTP()
返回的 list_local
做任何事情(还没有?)。