我是python的新手,我正在尝试读取一个ftp目录并将文件名和文件大小写入文件(当前是文本文件)
import sys
import os
import ftplib
import ftputil
import fnmatch
log = open("C:/..../ftp_name.txt","a")
print "logging into FTP" # print
host = ftputil.FTPHost('address','Uname','Pass') # ftp host info
recursive = host.walk("/WORLDVIEW",topdown=True,onerror=None) # recursive search
for root,dirs,files in recursive:
for name in files:
fullpath = os.path.join(root, name)
size = FTP.size(fullpath)
writepath = fullpath + " " +size + "\n"
log.write(writepath)
我得到它来写文件名和路径但是一旦我添加了size函数就错了
我收到的错误是:
<b>NameError: name 'FTP' is not defined</b>
我也试过替换
size = FTP.size(fullpath)
与
size = recursive.size(fullpath)
返回错误:
<b>AttributeError: 'generator' object has no attribute 'size'</b>
答案 0 :(得分:1)
通常,要获取文件大小,请使用os
模块:https://docs.python.org/2/library/os.path.html#os.path.getsize。
使用ftputil
时,他们会进行host.path.getsize
您可以在此处查看更多相关文档:http://mcdc.missouri.edu/libs/python/ftputil/ftputil.html#retrieving-information-about-directories-files-and-links
...
for root,dirs,files in recursive:
for name in files:
fullpath = host.path.join(root, name)
size = host.path.getsize(fullpath)
答案 1 :(得分:0)
我知道你得到了答案但是
size = FTP.size(fullpath)FALSE也许你是从https://docs.python.org/2/library/ftplib.html
复制的你看到所有的功能都有FTP.function()只是一个标题
尝试使用
size = ftp.size(fullpath)
很惊讶没有人指出将近3年NameError:name&#39; FTP&#39;未定义===检查名称
我知道因为我有同样的错误。