NameError:未定义名称“ftp”,Python

2024-10-02 00:39:07 发布

您现在位置: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之前,我尝试将其设置为全局变量,但仍然存在相同的错误


Tags: inpyimportconfigosmainlocaldef
1条回答
网友
1楼 · 发布于 2024-10-02 00:39:07

ftpuploadFTP()的范围内是未知的。使用类、全局变量(使用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执行任何操作

相关问题 更多 >

    热门问题