python实现连接FTP服务器

发布时间:2022-06-13 09:59

python中ftplib模块支持ftp操作,主要使用FTP类。本文使用ftp操作进行连接FTP服务器、获取当前目录文件清单、上传文件等操作。

参考文献1的示例中,在创建FTP实例时指定FTP服务器地址,此时FTP端口默认使用的21端口。由于之前创建的FTP服务器,端口改成了21001,无法在FTP类中指定端口,本文创建FTP类实例后,调用connect函数指定服务器和端口,并连接FTP服务器。

FTP服务器连接成功后,调用login函数,指定用户名和密码,登录服务器。

登录后,默认是在根目录下,可以调用dir函数显示当前目录下的文件清单,包括文件和文件夹,不过此时会将中文显示为乱码,如下图所示:

图片[1] - python实现连接FTP服务器 - 尘心网
根据参考文献3,设置FTP对象实例的编码方式,即可正常显示中文,此时程序代码及运行结果如下所示:

	import ftplib
	
	host='192.168.11.50'
	f=ftplib.FTP()
	f.encoding = 'GB18030'
	f.connect(host,21001)
	f.login('ftpuser','XXXXXXXXXXX')       
	
	print("FTP服务器已经成功登录")
	f.dir()
	print('当前工作目录:',f.pwd())
	
	f.quit()
	print("FTP服务器已断开")

图片[2] - python实现连接FTP服务器 - 尘心网

目前学习的python上传文件的方式和C#调用FluentFTP上传文件不太一样,FluentFTP直接指定本地文件路径和上传文件路径即可,但是用python,首先先调用FTP类的cwd函数切换到要上传到的FTP服务器文件夹,然后调用文件操作函数open打开要上传的文件,最后调用FTP类的storbinary函数上传文件。

程序代码、执行结果如下所示:

	import ftplib
	
	host='192.168.11.50'
	f=ftplib.FTP()
	f.encoding = 'GB18030'
	f.connect(host,21001)
	f.login('ftpuser','XXXXXXXXXXX')       
	
	print("FTP服务器已经成功登录")
	f.dir()
	print('当前工作目录:',f.pwd())
	f.cwd("音乐")
	
	upload_file="/home/hp/文档/音乐/再度重相逢.ape"
	ff=open(upload_file,'rb')
	print(f.storbinary("STOR 再度重相逢.ape",ff))
	
	f.quit()
	print("FTP服务器已断开")

图片[3] - python实现连接FTP服务器 - 尘心网
图片[4] - python实现连接FTP服务器 - 尘心网

文档下载:python实现连接FTP服务器.doc文档

THE END
喜欢就支持一下吧