使用python在ftp上查找文件的文件大小

时间:2014-05-15 12:17:37

标签: python ftp filesize

我是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>

2 个答案:

答案 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;未定义===检查名称

我知道因为我有同样的错误。