ftplib

ftplib



import ftplib

#Address: ftp.ptree.jaxa.jp
# UID: *********
# PW: *********
# ftp.ptree.jaxa.jp

ftp = ftplib.FTP()
ftp.connect('ftp.ptree.jaxa.jp', 21, 10)
ftp.login('*********', '*********')
# 显示FTP登陆信息
print(ftp.getwelcome())
# print(ftp.sendcmd('list'))
# 罗列FTP文件夹内容
print(ftp.dir())
# 进入相应的文件夹
ftp.cwd('./jma')
# print(ftp.dir())

# 返回当前目录的路径
print(ftp.pwd())

ftp.cwd('./202307')
print(ftp.dir())
ftp.cwd('./31/23')
print(ftp.pwd())
# 通过ftp.size(filename)直接获取文件大小的时候,会提示 ftplib.error_perm: 550 SIZE not allowed in ASCII mode错误,
# 原因是由于Python的ftplib模块不支持传输模式为ASCII的时候获取文件的大小,需要将传输模式改为二进制模式
ftp.voidcmd('TYPE I')
print(ftp.size('PI_H09_20230731_2350_TRC_FLDK_R10_PGPFD.png'))


filename = 'HS_H09_20230731_2350_B16_R304_R20_S0101.DAT.bz2'
# 打开待下载到本地的文件
file_handle = open ("test.bz", "wb") 
# 将ftp待下载路径下filename的文件下载下来
ftp.retrbinary("RETR " + filename, file_handle.write)

# 正常退出
ftp.quit()

# # 强行关闭连接
# ftp.close()





BypInformation