Python3——FTP(文件传输协议)

                           Python3——FTP(文件传输协议)

 

工作流程:

  1. 客户端连接远程主机的FTP服务器;
  2. 客户端输入用户名密码;
  3. 客户端进行各种文件传输和信息查询;
  4. 客户端从FTP服务器退出。

 

ftplib.FTP常用方法

login(user,passwd)登录 FTP 服务器
pwd()获得当前工作目录
cwd(path)切换到 path路径
dir ([path[,...[,cb]])显示 path 目录里的内容,可选的参数 cb 是一个回调函数,会传递给 retrlines()方法
retrlines(cmd [, cb])给定 FTP 命令(如“ RETR filename”),用于下载文本文件。可选的回调函数 cb 用于处理文件的每一行
retrbinary(cmd,cb[,bs=8192[, ra]])与 retrlines()类似,只是这个指令处理二进制文件。回调函数 cb 用于处理每一块(块大小默认为 8KB)下载的数据
storlines(cmd, f)给定 FTP 命令(如“ STOR filename”),用来上传文本文件。要给定一个文件对象 f
storbinary(cmd, f[,bs=8192])与 storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象 f,上传块大小 bs 默认为 8KB
rename(old, new)把远程文件 old 重命名为 new
delete(path)删除位于 path 的远程文件
mkd(directory)创建远程目录
rmd(directory)删除远程目录
quit()关闭连接并退出
import ftplib 
import os
import socketHOST = '10.10.40.92'
USER = 'libang'
PASSWD = '18853734036'def FtpConnect(host, username, passwd):try:ftp = ftplib.FTP(HOST)except (socket.error, socket.gaierror) as e:print('Error, cannot reach ' + HOST)returnelse:print('Connect To Host Success...')try:ftp.login(USER, PASSWD)except ftplib.error_perm:print('Username or Passwd Error')ftp.quit()returnelse:print('Login Success...')return ftp;def FtpDownload(ftp, remotepath, localpath):try:ftp.retrbinary('RETR %s' %remotepath, open(localpath, 'wb').write)except ftplib.error_perm:print('File Error')os.unlink(localpath)else:print('Download Success...')ftp.quit()def FtpUpload(ftp, remotepath, localpath):try:ftp.storbinary('STOR %s' %remotepath, open(localpath, 'rb'))except ftplib.error_perm:print('File Error')os.unlink(localpath)else:print('Upload Success...')ftp.quit()if __name__ == '__main__':ftp = FtpConnect(HOST, USER, PASSWD)#FtpDownload(ftp, './5.rar', '222.rar')  # 上传FtpUpload(ftp, './kkkk.rar', './222.rar') # 下载

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux设备树的传递以及kernel中对设备树的解析

当U-Boot将设备树加载到内存指定位置后,ARM内核的SoC以通用寄存器r2来传递dtb在内存中的地址。kernel获取到该地址后对dtb文件做进一步的处理。#设备树的传递当使用bootm加载kernel镜像时(bootz是对bootm的一种封装以及功能扩展,实质一样&…

切片基础slice

定义:slice表示一个拥有相同类型元素的可变长度的序列 slice有三个属性:指针,长度,容量 指针指向第一个可以从slice中访问的元素,这个元素并不一定是数组的第一个元素 注意: 1.一个底层数组可以对应多个sli…

常用shell命令

要复制整个目录,请使用 cp 命令的 -r 选项。例如,如果有一个名为 mydir 的目录,其中包含 myfile 和 newfile,则可以将该目录复制到一个名为 mydir2 的新目录。mydir2 还将包含 myfile 和 newfile 的副本。请使用以下命令&#xff…

Linux kernel之SMP初始化

01—SMP数据结构SMP的数据结构如下图所示,主要由2部分构成,通过两个宏定义CONFIG_SMP和CONFIG_HOT_PLUG来控制。当设置kernel支持SMP模式时,那么CONFIG_SMP选项是一定会打开的,因此第一部分是必须实现的内容。而第二部分是否需要实…

Python3——多线程之threading模块

Python3——多线程之threading模块 目录 Python3——多线程之threading模块 Threading模块的对象 Threading模块的Thread类 queue模块(线程间通信) Python 提供了多个模块来支持多线程编程,包括 thread、 threading 和 Queue 模块等。程…

BZOJ2216 [Poi2011]Lightning Conductor 【决策单调性dp】

题目链接 BZOJ2216 题解 学过高中数学都应知道,我们要求\(p\)的极值,参变分离为\[h_j sqrt{|i - j|} - h_i \le p\] 实际上就是求\(h_j sqrt{|i - j|} - h_i\)的最大值 就可以设\(f[i]\)表示对\(i\)最大的该式的值 绝对值通常要去掉,一般可…

笔记本 cpu 参数

选本必看--笔记本主流cpu参数大全现在本本的处理器种类真的太多了,绝对足够让人眼花缭乱的,各式各样的CPU核心、外频、缓存、接口、电压、制作工艺等等,多到让人疯狂,很少认能够对此了如执掌的。这次我们归纳了所有主流的本本处理…

MTK笔试1题~

这个题目是前几天一个好友分享给我的,但是因为时间原因没有及时写成文章。这是他参加MTK笔试的题目题目如下:网友提供的代码如下:#include "stdio.h"typedef struct n{int data;struct n* next;struct n* pre; }*pnode;int main(){…

console和windows子系统

https://blog.csdn.net/ilvu999/article/details/8050292 转载于:https://www.cnblogs.com/132818Creator/p/9210791.html

Python3 —— 逗号分隔值CSV

Python3 —— 逗号分隔值CSV 目录 Python3 —— 逗号分隔值CSV CSV 读写CSV文件 CSV 逗号分隔值( Comma-Separated Value, CSV)。与专有的二进制文件格式截然不同, CSV 通常用于在电子表格软件和纯文本之间交互数据。CSV 文件…

教你如何防止电脑插入u盘后自动运行

今天重装了系统,安装了驱动和各种软件,然后打完了补丁。在使用的过程中,当我插入U盘的时候发现是自动打开的,那么怎样防止这一个现象呢?思考片刻我想到了本地组策略,于是找了一下,结果还真有一个…

从单片机步入Linux之运行地址与加载地址

大家好,我是情报小哥!本文为【单片机步入嵌入式Linux】系列文章的第二篇,主要是跟大家讲解一下链接过程中几个地址的区分与理解~01单片机存储分配

VC++常见错误

1、fatal error C1010: unexpected end of file while looking for precompiled header directive。寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h") 2、fatal error C1083: Cannot open include file: R………

iview插件

1.图表居中 columns1: [{title: 序号,key: number,align: center, //水平居中}, } 转载于:https://www.cnblogs.com/SunShineM/p/9217335.html

Python3——JSON

Python3——JSON 目录 Python3——JSON Python和JSON数据类型对比 dumps()/loads() JSON是JavaScript的子集,专门用于指定结构化的数据。JSON 是轻量级的数据交换方式,易于阅读和编写。 Python和JSON数据类型对比 dict object list,tuple array …

不要错过秋招

标题就是重点~这是今天跟一个同学聊天说到的问题,之前我不是直播了嘛,我在直播里面说,如果大家有求职面试相关的事情,可以私下找我,这位同学还是很积极,今天就找我聊了。他的简历整体上问题不大&#xff0c…

VMware HA与VMotion的部署与搭建

VMware HA与VMotion的部署与搭建一.VMware HA 由于公司虚拟化的不断使用,不允许出现ESX Server的单点故障,因此考虑用VMware 自己的解决方案,及VMware的群集,对于群集的相关介绍,这里就不再叙述了&#…

suse glibcxx版本过高问题

实际开发中发现,suse11虽然glibc版本很低,只有2.11.3,但是glibcxx版本很高,达到了3.4.19。这里我需要降低glibcxx版本。所谓glibcxx版本,即libstdc.so.6的版本问题。 我找了centos版的libstdc.so.6.0.13,替…

这几个电子行业优质公众号,让你学习不迷路

古人都知道白天看日,晚上追星,如何学习不迷路,让自己的学习更加有效率,当然是要学习大佬们的经验总结。2021已过半,碎片时间充斥了我们的生活,与其淹没在信息洪流里不如只阅读精挑细选的优质,内…

STM32F7xx —— 启动文件和HAL库

STM32F7xx —— 启动文件和HAL库 目录 STM32F7xx —— 启动文件和HAL库 一.库开发的优势 二.stm32F7xx几个重要文件 1. HAL库关键文件 2.stm32f7xx_it.c/h 3.stm32f7xx.h 4.stm32f767xx.h 5.system_stm32f7xx.c/h 6.stm32f7xx_hal_msp.c 7.star…