名称错误:名称';ftp';未定义,Python
即使我声明了ftp,我也会遇到这个错误 以下是完整的错误消息:名称错误:名称';ftp';未定义,Python,python,ftp,global-variables,nameerror,Python,Ftp,Global Variables,Nameerror,即使我声明了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 'f
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
在使用ftp之前,我尝试将其设置为全局变量,但在
uploadFTP()
的范围内,仍然不知道相同的错误。使用类、全局变量(使用全局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()
(尚未?)返回的列表执行任何操作。请修复缩进并包含完整的错误消息。您很可能忘记声明ftp
,因为global
中不知道uploadFTP()
。使用一个类或传递对象。非常感谢。这个列表是为另一个我没有包含在这个线程中的函数准备的。
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()