① python 操作ftp 都有哪些库
Python提供了一个内置的操作ftp的模块ftplib,
能够完成ftp登录、查看目录、修改目录、上传文件等功能。
一般需求应该足够了。
② python ftp模块有支持passive off这个命令吗
因为FTP有两种工作模式,PORT方式和PASV方式,中文意思为主动式和被动式,详细介绍如下:主动FTP:命令连接:客户端>1024端口→服务器21端口数据连接:客户端>1024端口←服务器20端口被动FTP:命令连接:客户端>1024端口→服务器21端口数据连接:客户端>1024端口←服务器>1024端口PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链路来传送数据。解决此问题的法也很简单,关闭客户端的PASV方式,强制其用PORT方式访问服务器,登录FTP服务器后用passive命令关闭客户端的PASV方式,如下:ftp>passivePassivemodeoff.ftp>passive(再次运行命令可打开)Passivemodeon.
③ 如何在Python中使用FTP
from
ftplip
import
FTP
#
首先要引入
ftplib
这个库
#
接着,这是我自定义的几个用于操作
ftp
的函数,def
后面跟的是自定义函数名,函数体内FTP
相关的语句和函数来自上面
import
那个包,你自己体会吧:
#
初始化
FTP
连接
def
ftp_open(HOST,PORT,USERNAME,PASSWORD):
ftp=FTP()
ftp.set_debuglevel(2)
ftp.connect(host=HOST,port=PORT)
ftp.login(USERNAME,PASSWORD)
return
ftp
#
关闭
FTP
连接
def
ftp_close(ftp):
ftp.set_debuglevel(0)
ftp.quit()
#
文件上传函数,filename
可以是windows
格式包含全路径的文件
def
ftp_up(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'rb')
ftp.storbinary('STOR
%s'
%
os.path.basename(filename),file_handler)
file_handler.close()
print('FTP
up
OK.')
#
文件下载函数,filename
可以是windows
格式包含全路径的文件
def
ftp_down(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'wb')
ftp.retrbinary('RETR
%s'
%
os.path.basename(filename),file_handler)
file_handler.close()
print('FTP
down
OK.')
④ python查看FTP是否能连接成功的方法
#!/usr/local/bin/python
#-*- coding: UTF-8 -*-
####################################################################
# python 查看FTP是否能连接成功
####################################################################
#import ftplib
##f = ftplib.FTP('192.168.100.214')
##f.login('GDATA_MEM','123456')
##ftplib.set_debuglevel(2) #打开调试级别2,显示详细信息
#data=ftplib.FTP('127.0.0.1','admin','123456')
#print data
from ftplib import FTP
def ftp_open(host='',user='',passwd=''): #打开FTP
try:
ftp=FTP()
) #打开调试级别2,显示详细信息
) #连接
data=ftp.login(user,passwd) #登录,如果匿名登录则用空串代替即可
print () #欢迎词
#print data
return 1
except:
return 0
if __name__=='__main__':
if ftp_open('127.0.0.1','admin','1234561'): #打开FTP
print "打开FTP成功"
else:
print "打开FTP失败"
⑤ python ftp连接指定服务器,并下载指定文件
ftp客户端一般只有显示、上传、下载,并没有打开文件的操作,所以你得先下载相应配置文件,在本地解析后,再继续用相关参数下载后续文件。
⑥ python,求助,服务器走的sftp协议,怎么获取上面的文件
用paramiko模块
importparamiko
defsftp_get(file):
CONST_HOST="1.1.1.1"
CONST_USERNAME="root"
CONST_PWD="password"
让宏CONST_PORT=22
try:
t=paramiko.Transport((CONST_HOST,CONST_PORT))
t.connect(username=CONST_USERNAME,password=CONST_PWD)
sftp=paramiko.SFTPClient.from_transport(t)
兆腊des=os.getcwd()+'\test.txt'
#file为你要下载的文件,des为你保存该文件的路径
sftp.get(file,des)
t.close()
族滑滑print'download%sto%sok'%(file,des)
returnTrue
exceptException,e:
raisee