www.cnblogs.com/ruiyqinrui

开源、架构、Linux C/C++/python AI BI 运维开发自动化运维。 春风桃李花 秋雨梧桐叶。“力尽不知热 但惜夏日长”。夏不惜,秋不获。@ruiY--秦瑞

python爬虫,C编程,嵌入式开发.hadoop大数据,桉树,onenebula云计算架构.linux运维及驱动开发.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
# -*- coding:utf-8 -*-
import sys
import io
import socket
socket.setdefaulttimeout(200)

#print(sys.stdout.encoding)
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding="gb2312")


'''
if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
sys.setdefaultencoding('utf-8')
'''


"""
FTP常用操作
"""
from ftplib import FTP
import os
import datetime
import time
ftp = FTP()
ftp.set_pasv(False) 
#ftp.encoding = 'GB2312'
ftp.set_debuglevel(0)
ftp.connect(host = "123.206",port = 21)
ftp.login("","")
#return ftp

print(ftp)

buffer_size = 1024
print(ftp.nlst("rain10min"))#////ftplib.error_temp: 425 Unable to set up passive listening socket.
print(ftp.dir())
#print(ftp.nslt(""))
#print(ftp.dir("3"))
print(ftp.nlst("rain10min"))

#枚举指定目录所有文件并下载

#存储路径
dataDir = "D:\\yb\\"
ftpDataDir = ""

#设置接受缓冲区
#10240kb = 10M 
#102400kb = 100M
#1024 000 kb = 1Gb
bufsize = 1024

for i in ftp.nlst("rain10min"):
    print('x')
    print(i)
    #本地存储文件路径及名称
    dataDirFile = dataDir + i
    #dataDirFile = i
    print(dataDirFile)
     
    #远程ftp文件路径及名称
    ftpDataDirFile = ftpDataDir + i
    print(ftpDataDirFile)
    #print(type(os.path.getsize(dataDirFile)))
    
    try:
        if os.path.exists(dataDirFile):
            dataDirFileSize = os.path.getsize(dataDirFile)
            if dataDirFileSize == 0:
                os.remove(dataDirFile)
            else:
                print("文件%s已经下载,大小%d" %(dataDirFile,dataDirFileSize))
        else:
            fpf = open(dataDirFile,'wb')
            print("当前正在下载文件%s" % (dataDirFile))
            ftp.retrbinary('RETR %s' %ftpDataDirFile,fpf.write,bufsize)
            print(dataDirFile + "文件下载完成")
            #if os.path.getsize(dataDirFile)
            
        '''
        dataDirFileSize = os.path.getsize(dataDirFile)
        #print("%s 文件大小为%d " % (dataDirFile,dataDirFileSize))
        if dataDirFileSize == 0:
            #print(dataDirFile+ "文件内容为空,下载失败的文件,需要重新下载")
            #删除内容为空的文件,以便后面程序重新下载
            os.remove(dataDirFile)
            #print("删除错误下载空文件%s" % dataDirFile)
        elif os.path.exists(dataDirFile):
            print("%s文件已经存在" % dataDirFile)
            
            dataDirFileSize = os.path.getsize(dataDirFile)
            print(dataDirFileSize)
            
            if dataDirFileSize == 0:
                #print(dataDirFile+ "文件内容为空,下载失败的文件,需要重新下载")
                #删除内容为空的文件,以便后面程序重新下载
            
        #elif int(os.path.getsize(dataDirFile)) == 0:
            #print(dataDirFile)
        else:
            #pass
            
            fpf = open(dataDirFile,'wb')
            ftp.retrbinary('RETR %s' %ftpDataDirFile,fpf.write,bufsize)
            print(dataDirFile + "文件下载完成")
        '''
    except:
        print("异常错误")
    
    
    
    '''
    try:
        pass
    except:
        pass
    '''

 

posted on 2021-04-09 15:16  秦瑞It行程实录  阅读(168)  评论(0编辑  收藏  举报
www.cnblogs.com/ruiyqinrui