python之使用SFTP将Windows文件上传到Linux

环境

Python-3.8
Windows 64位

安装必要的库

首先,确保已经安装了以下库:

#有网安装方式:
pip install paramiko
#离线安装方式:
pip install bcrypt-3.1.7-cp38-cp38-win_amd64.whl
pip install cryptography-2.9-cp38-cp38-win_amd64.whl
pip install PyNaCl-1.3.0-cp38-cp38-win_amd64.whl
pip install paramiko-2.9.5-py2.py3-none-any.whl

代码实现

import os  # 引入os模块
import paramiko  # 引入paramiko代码
from stat import S_ISDIR
import base64  # 引入base64模块# base64加密
def b64_encode(password):password = password.encode("utf-8")return base64.b64encode(password)# base64 解密
def b64_decode(password):return base64.b64decode(password)def isdir(sftp, dirPath):try:return S_ISDIR(sftp.stat(dirPath).st_mode)except IOError:return Falsedef rm(sftp, path):files = sftp.listdir(path)for f in files:filepath = path + '/' + fprint("删除已存在文件: " + filepath)if isdir(sftp,filepath):rm(filepath)else:sftp.remove(filepath)sftp.rmdir(path)path = 'D:/Temp/en/20221114'  # 赋值路径
pathDate = path.split("/")[-1]
sftpPath = os.path.join('/home/app_adm/tmp/sftp/', pathDate)
print(sftpPath)
mylist = os.listdir(path)  # 赋值列表(列表的索引从0开始)pw=b64_decode('**********')
transport = paramiko.Transport(('********', 22))  # 打开通道
transport.connect(username='infra_adm', password=pw)  # 开始连接
sftp = paramiko.SFTPClient.from_transport(transport)  # 打开sftp客户端try:print("开始创建目录:" + sftpPath)sftp.stat(sftpPath)rm(sftp, sftpPath)sftp.mkdir(sftpPath, mode=0o775)
except FileNotFoundError:# 目录不存在,创建目录sftp.mkdir(sftpPath, mode=0o775)count = 0  # 用来计数
while count < len(mylist):  # 如果列表里有多个值 则一一循环print("正在传输:" + mylist[count])  # 循环开始时打印正在传输的文件名fullPath = path + '/' + mylist[count]sftpFullPath = sftpPath + '/' + mylist[count]# print(fullPath)# print(sftpFullPath)sftp.put(fullPath, sftpFullPath)print(mylist[count] + '传输完成')  # 传输完成后打印传输完成的文件名count = count + 1  # 每次上传完一个文件计数+1
transport.close()  # 当传输结束之后关闭通道

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

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

相关文章

【C++游记】string的使用和模拟实现

枫の个人主页 你不能改变过去&#xff0c;但你可以改变未来 算法/C/数据结构/C Hello&#xff0c;这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕&#xff0c;我们继续来学习C的内容呀。C是接近底层有比较经典的语言&#xff0c;因此学习起来注定枯燥无味&#xf…

切换至低特权级

x86权限简介 x86芯片支持四种特权级&#xff1a;第0级权限最高&#xff0c;用于运行操作系统&#xff1a;第3级权限最低&#xff0c;用于运行应用程序&#xff1b;其它两级用于运行操作系统服务&#xff08;可选&#xff09;。 2&#xff0c;3等级用的少 权限检查时&#xff0…

游戏如何应对模拟器作弊

模拟器是指能在PC端模拟出安卓手机系统的软件&#xff0c;市面上比较常见的安卓模拟器有&#xff1a;雷电模拟器、MuMu模拟器、夜神模拟器等。 市面上常见的模拟器 模拟器既可以节省手机内存空间&#xff0c;避免长时间玩游戏手机发烫发热的尴尬&#xff0c;也可以用键盘鼠标对…

Ubuntu环境下搭建区块链FISCO BCOS节点和WeBASE

说明: 1.搭建的是webase-deploy并不是webase-front 2.根据本文档由于ubuntu版本的不同,可能会造成一些小的问题发生,自行解决 如:java环境变量;数据库权限、密码等。 (一)搭链 参考文档:WeBASE管理平台 — FISCO BCOS 2.0 v2.11.0 文档 1.安装依赖: sudo apt i…

22. 正则表达式

一、概述 正则表达式&#xff08;regular expression&#xff09;又称 规则表达式&#xff0c;是一种文本模式&#xff08;pattern&#xff09;。正则表达式使用一个字符串来描述、匹配具有相同规格的字符串&#xff0c;通常被用来检索、替换那些符合某个模式&#xff08;规则&…

我们来对接蓝凌OA --报文格式

题记 数智化办公专家、国家高新技术企业、知识管理国家标准制定者、信创供应商10强…等等&#xff0c;这些和咱们有关系吗&#xff01;&#xff01;不好意思&#xff0c;走错片场了&#xff0c;刚和项目经理在甲方那边吹牛B想想刚刚的大饼&#xff0c;看看支付宝余额&#xff…

GFPS扩展技术原理(一)消息流

消息流作用 Google fast pair service要求Provider提供一个额外得通道以便seeker寻求建立连接&#xff0c;连接建立后&#xff0c;Seeker就可以向Provider发送一串数据流&#xff0c;这样做的目的是为了支持GFPS Extension&#xff0c;也就是扩展的GFPS&#xff0c;主要涉及一…

海康萤石摄像机接入EasyNVR流程:开启RTSP-》萤石视频添加到EasyNVR-》未来支持海康SDK协议添加到EasyNVR

EasyNVR目前支持GB28181、RTSP、ONVIF、RTMP&#xff08;推流&#xff09;这几种协议接入&#xff0c;目前正在增加海康HIKSDK、大华DHSDK等几种SDK的接入&#xff0c;我们今天就介绍一下萤石摄像机怎么通过RTSP接入到EasyNVR。 第一步&#xff1a;萤石摄像机开启 萤石设备默…

【EthIf-03】 EthernetInterface软件栈的文件组织结构

上图为《AUTOSAR_SWS_EthernetInterface【v2.2.0 】》给出的EthernetInterface软件栈的文件组织结构,本文主要关注arccore代码中已存在的文件的功能和作用,不知道的小伙伴可以查看🔗EthIf的文件结构中的src和inc目录下的文件有哪些: 1. 文件结构 1.1 EthIf_Cbk.h 头文…

LeetCode hot100-69-N

https://leetcode.cn/problems/valid-parentheses/description/?envTypestudy-plan-v2&envIdtop-100-liked 20. 有效的括号 已解答 简单 相关标签 相关企业 提示 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#x…

Docker 中使用 PHP 通过 Canal 同步 Mysql 数据到 ElasticSearch

一、Mysql 的安装和配置 1.使用 docker 安装 mysql&#xff0c;并且映射端口和 root 账号的密码 # 获取镜像 docker pull mysql:8.0.40-debian# 查看镜像是否下载成功 docker images# 运行msyql镜像 docker run -d -p 3388:3306 --name super-mysql -e MYSQL_ROOT_PASSWORD12…

【深度学习量化交易6】优化改造基于miniQMT的量化交易软件,已开放下载~(已完成数据下载、数据清洗、可视化模块)

我是Mr.看海&#xff0c;我在尝试用信号处理的知识积累和思考方式做量化交易&#xff0c;应用深度学习和AI实现 股票自动交易&#xff0c;目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易软件。 之前写到&#xff0c;目前我已经完成了数据下载、数据清洗和数据可视化…

【开发情景】数据库存的JSON数据转为Map,key值是中文,转成英文,转为json数据传给前端

数据库存的JSON数据转为Map&#xff0c;key值是中文&#xff0c;转成英文&#xff0c;转为json数据传给前端 方法一&#xff08;最详细&#xff09;&#xff1a; 一、解析JSON数据&#xff1a;使用 JSON 库将字符串解析为 Map。 1、从数据库读取 JSON 字符串&#xff1a;2、使…

Node.js EventEmitter

Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。 Node.js 里面的许多对象都会分发事件&#xff1a;一个 net.Server 对象会在每次有新连接时触发一个事件&#xff0c; 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。 所有这些产生事件的对象都…

SpringBoot 项目使用 EasyExcel 插件构建 Excel 表格格式(行高、列宽和字体等)工具类

本文主要讲了如何使用 EasyExcel 插件&#xff0c;在导出 Excel 时&#xff0c;设置行高&#xff0c;列宽&#xff0c;表头格式&#xff0c;内容字体大小等工具类。 1、代码使用的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyex…

Ubuntu18安装后基本配置操作

1. 关掉自动更新 不关掉自动更新&#xff0c;会将你的ubuntu系统更新到更高版本&#xff0c;一些配置就不能用了&#xff0c;所以要关掉自动更新。在“软件和更新”中将“自动检查更新”设置为从不。 2. ubuntu换国内源 参考链接换源 按照这个换源这个换源好使 &#xff0c;…

《探索C++在3D重建中的算法与技术要点》

3D重建作为计算机视觉领域的重要技术&#xff0c;在诸多行业有着广泛应用&#xff0c;而C以其高效性和对底层硬件的良好控制&#xff0c;成为实现3D重建算法的常用语言。以下是利用C进行3D重建的一些常见算法和技术要点。 多视图立体视觉算法 多视图立体视觉是3D重建的基础算…

Hadoop一课一得

Hadoop作为大数据时代的奠基技术之一&#xff0c;自问世以来就深刻改变了海量数据存储与处理的方式。本文将带您深入了解Hadoop&#xff0c;从其起源、核心架构、关键组件&#xff0c;到典型应用场景&#xff0c;并结合代码示例和图示&#xff0c;帮助您更好地掌握Hadoop的实战…

2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长

2024153读书笔记|《春烂漫&#xff1a;新平摄影作品选》——跳绳酷似人生路&#xff0c;起落平常&#xff0c;进退平常&#xff0c;莫惧征途万里长 《春烂漫&#xff1a;新平摄影作品选》作者新平&#xff0c;2019.12.25年读完的小书&#xff0c;当时就觉得挺不错&#xff0c;今…

Django 与 Flask 框架深度剖析

一、框架概述 起源与发展 Django&#xff1a; 诞生于新闻应用开发环境&#xff0c;旨在快速构建复杂、数据库驱动的网站。由 Django 软件基金会维护&#xff0c;拥有庞大的社区支持&#xff0c;持续更新迭代。其发展遵循稳定、功能丰富的路线&#xff0c;注重安全性与可扩展性的…