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

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

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

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

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服务器已断开")

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服务器已断开")

python连接FTP服务器的实现方法

python连接FTP服务器的实现方法

参考文献

[1]Python从菜鸟到高手
[2]https://docs.python.org/3/library/ftplib.html#ftplib.FTP
[3]https://blog.csdn.net/weixin_33701564/article/details/91918434

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。