windows 利用IIS搭建FTP服务器 及python下载数据

 教程超级详细

https://jingyan.baidu.com/article/48b37f8d06fb851a64648802.html

若搭建时,没有用户和组,且为winx为家庭版,换台有用户和组的电脑

若搭建完成后使用python进行ftp连接出现:[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应

或使用文件连接ftp时出现连接不上的错误,均因为没有设置防火墙

https://jingyan.baidu.com/article/f3e34a12fb77f1f5ea653566.html

代码: 

nc_download_path = os.path.join("\\",path_L1, path_L2)    # ftp端路径

wd_name = "    Ruler." + path_L2 + "200000.012.WindEx12.nc" 
ws_name = "Ruler." + path_L2 + "200000.012.Ww12.nc"
pre_name = "Ruler." + path_L2 + "200000.024.Pr24.nc"
tem_name = "Ruler." + path_L2 + "020000.000.T.nc"
weather_list = [wd_name,ws_name,pre_name,tem_name]

# 本地端存放nc数据的路径不能有中文
local_path = os.path.join("D:\\qdh_nc_download\\", path_L1, path_L2)

def ftp_connect():
"""用于FTP连接"""
    # 测试地址
    ftp_server = ''  # ftp站点对应的IP地址
    username = ''  # 用户名
    password = ''  # 密码
    try:
        ftp = FTP(ftp_server)  # 实例化FTP对象
        ftp.login(username, password)  # 登录
        return ftp
    except (socket.error, socket.gaierror):
        print("FTP登陆失败,请检查主机号、用户名、密码是否正确")
        sys.exit(0)

def remote_file_exists(ftp, weather_file):
    """用于FTP站点目标文件存在检测"""
    ftp.cwd(nc_download_path)  # 进入目标目录
    remote_file_names = ftp.nlst()  # 获取文件列表
    if weather_file in remote_file_names:
        return True
    else:
        return False

def download_file(ftp, weather_file):
    """用于目标文件下载"""
    buffer_size = 1024

    download_ftp_file = os.path.join('\\',nc_download_path, weather_file)
    local_write_file = os.path.join(local_path, weather_file)

    if not os.path.exists(local_path):
        os.makedirs(local_path)
    if not os.path.exists(local_write_file):
        f = open(local_write_file, "wb")
        ftp.retrbinary('RETR {0}'.format(download_ftp_file), f.write, buffer_size)
        f.close()

ftp = ftp_connect()
for w_file in weather_list:
    # if if_file:  # 判断远端是否已有文件
    if remote_file_exists(ftp,w_file):  # 判断远端是否已有文件
        download_file(ftp, w_file)
    else:
        print("ftp中无文件",w_file)
ftp.quit()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值