【Python】ftplib的使用
仅描述基础要点,备忘。
python自带ftplib库,可实现ftp读写。
1 要点
- ftp未使用默认端口21时,需显示指定端口。
- ftp路径带有中文,可能需要设置ftp的encoding属性为 gbk。
- ftplib不支持递归创建目录,需手动创建层级目录。
2 代码
2.1 下载文件
import os
from ftplib import FTPftp_server = '192.168.162.128'
ftp_port = 31 # FTP默认端口是21
uname = 'test'
upwd= 'test'
# 匿名访问是 用户名是anonymous, 密码随便填写remote_file_path = '/haha/hi.txt'
local_file_path = os.path.join(os.getcwd(), 'hi.txt') # 与脚本同目录ftp = FTP()
try:ftp.connect(host=ftp_server, port=ftp_port)ftp.encoding = 'gbk' # 国内可能需要 若ftp路径有中文ftp.login(user=uname, passwd=upwd)ftp.set_pasv(True) # 切换到被动模式(大多数情况下需要)with open(local_file_path, 'wb') as file:ftp.retrbinary(f'RETR {remote_file_path}', file.write)print(f"文件已成功下载到 {local_file_path}")
except Exception as e:print(f"发生错误: {e}")finally:ftp.quit() # 断开连接
2.2 上传文件
remote_file = '/202406/hk/hi.txt'local_file= os.path.join(os.getcwd(), 'hi.txt')with open(local_file, 'rb') as file:ftp.storbinary(f'STOR {remote_file }', file)
2.3 逐级创建目录
因ftplib不支持递归创建目录,需手动创建层级目录。
# 注意此函数只传入 目录,不能传入文件的全路径
# 若传入如 /path/my.txt 其会创建 path 及子目录 my.txt
# 即其将 my.txt 也认为是目录名
def ensure_dir(ftp, path):parts = path.strip('/').split('/') # 去除首尾的/,再将路径分隔current_path = '/' # 记录当前路径for part in parts:# 构建下一个目录路径current_path = current_path + part + '/'try:# 尝试列出目录的内容ftp.dir(current_path)except error_perm as e:try:ftp.mkd(current_path)print(f"目录 '{current_path}' 创建成功。")except error_perm as e:print(f"创建目录 '{current_path}' 失败:{e}")
相关文章:
【Python】ftplib的使用
仅描述基础要点,备忘。 python自带ftplib库,可实现ftp读写。 1 要点 ftp未使用默认端口21时,需显示指定端口。ftp路径带有中文,可能需要设置ftp的encoding属性为 gbk。ftplib不支持递归创建目录,需手动创建层级目录…...
CSS 【详解】CSS 函数(含 calc,min,max,clamp,cubic-bezier,env,steps 等)
函数描述CSS 版本attr()返回选择元素的属性值。2calc()允许计算 CSS 的属性值,比如动态计算长度值。3cubic-bezier()定义了一个贝塞尔曲线(Cubic Bezier)。3hsl()使用色相、饱和度、亮度来定义颜色。3hsla()使用色相、饱和度、亮度、透明度来定义颜色。3linear-grad…...
简单理解Lua 协程(coroutine)
也许更好的阅读体验 协程简单理解为可以暂停的线程,但是同一时刻只有一个协程可以处于运行状态。 文章目录 coroutine.create()coroutine.resume()coroutine.wrap()coroutine.yield()coroutine.resume()参数传递resume和yield之间互换数据 coroutine.create() lua…...
(day18) leetcode 204.计数质数
描述 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 示例 1: 输入:n 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2: 输入:n 0 输出:0示例 3…...
SadTalker数字人服务器部署
一、单独SadTalker部署 git clone https://github.com/OpenTalker/SadTalker.gitcd SadTalker conda create -n sadtalker python3.8conda activate sadtalkerpip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pyto…...
Python实现一对多WebSocket发送给指定多个客户端
在一对多的WebSocket场景下,如果你想要向特定的多个客户端发送消息,而不是广播给所有客户端,你需要维护一个能够标识每个客户端的方式,比如使用用户名或者客户端ID。这样,你就可以根据需要选择向哪些客户端发送消息。 …...
Power BI 工具介绍
Power BI是一款商业智能(BI)软件,由微软开发,旨在帮助用户将复杂的数据转化为视觉化的交互式见解。Power BI提供了一套完整的工具,包括数据连接、数据准备、数据建模、数据分析和数据可视化等功能,使用户能…...
银河麒麟高级服务器操作系统V10加固操作指南
1:检查系统openssh安全配置: 2:检查是否设置口令过期前警告天数: 3:检查账户认证失败次数限制: 修改/etc/pam.d/system-auth文件中deny的参数即可 4:检查是否配置SSH方式账户认证失败次数限制:...
(leetcode学习)15. 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&a…...
算法训练 | 图论Part8 | 117. 软件构建、47. 参加科学大会
目录 117. 软件构建 拓扑排序法 47. 参加科学大会 dijkstra法 117. 软件构建 题目链接:117. 软件构建 文章讲解:代码随想录 拓扑排序法 代码一:拓扑排序 #include <iostream> #include <vector> #include <queue> …...
编程从零基础到进阶(更新中)
题目描述 依旧是输入三个整数,要求按照占8个字符的宽度,并且靠左对齐输出 输入格式 一行三个整数,空格分开 输出格式 输出它们按格式输出的效果,占一行 样例输入 123456789 -1 10 样例输出 123456789-1 10 #include "stdio.…...
MySQL运维实战之ProxySQL(9.6)SQL黑名单
作者:俊达 利用mysql_query_rules表中的error_msg字段,可以实现SQL黑名单的功能。如果规则设置了error_msg,当SQL语句匹配这条规则时,proxysql会直接将error_msg的内容返回给客户端。 当遇到一些大查询严重影响数据库性能时&…...
深入了解MySQL中的innodb_lock_wait_timeout
引言 在数据库管理中,确保数据的一致性和完整性是至关重要的。MySQL的InnoDB存储引擎通过行级锁定机制来实现这一点。然而,当多个事务同时操作数据库时,可能会出现锁等待的情况。了解并合理配置innodb_lock_wait_timeout参数,对于…...
102.qt qml-最全Table交互之多列固定、行列拖拽、自定义委托、标题交互使用教程
自定义实现的Table控件,支持跨qt版本,兼容qt5,qt6! 截图如下所示: 黑色风格如下所示: 视频演示入口:Qt QML QianWindowV2.5(新增曲线综合示例、QML最全Table交互示例、支持qt5/qt6)_哔哩哔哩_bilibili 1.示例页面入口…...
文章管理小程序的设计
管理员账户功能包括:系统首页,个人中心,作者管理,文章管理,文章分类管理,论坛,系统管理 微信端账号功能包括:系统首页,文章,论坛,我的 开发系统…...
Ubuntu22.04安装NIVIDIA显卡驱动总结
1.首先在安装驱动时需要判断系统有无GPU以及GPU的型号 可以参考这篇文章: https://blog.51cto.com/u_13171517/8814753#:~:textubuntu%20%E7%B3%BB%E7%BB%9F%20%E6%80%8E%E4%B9%88%E5%88%A4%E6%96%AD%E7%B3%BB%E7%BB%9F%E6%9C%89%E6%B2%A1%E6%9C%89GPU%201%20%E6%…...
Redis的配置优化、数据类型、消息队列
文章目录 一、Redis的配置优化redis主要配置项CONFIG 动态修改配置慢查询持久化RDB模式AOF模式 Redis多实例Redis命令相关 二、Redis数据类型字符串string列表list集合 set有序集合sorted set哈希hash 三、消息队列生产者消费者模式发布者订阅者模式 一、Redis的配置优化 redi…...
数据结构之初始二叉树(2)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 二叉树的前置知识(概念、性质、、遍历) 通过上篇文章的学习,我们…...
如何预防最新的baxia变种勒索病毒感染您的计算机?
引言 在当今数字化时代,网络安全威胁层出不穷,其中勒索病毒已成为企业和个人面临的重大挑战之一。近期,.baxia勒索病毒以其高隐蔽性和破坏性引起了广泛关注。本文将详细介绍.baxia勒索病毒的特点、传播方式,并给出相应的应对策略…...
git列出提交记录的文件路径
一、如何列出某次提交记录中修改过/新增的文件? 方法1:使用 git diff-tree 命令来查看某个提交记录中修改过/新增的文件。具体来说,你可以使用以下命令: git diff-tree --no-commit-id --name-only -r <commit-hash>命令解…...
tchMaterial-parser:国家中小学智慧教育平台电子课本下载的高效解决方案
tchMaterial-parser:国家中小学智慧教育平台电子课本下载的高效解决方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本…...
TTS-Vue终极指南:如何快速构建高性能本地语音合成应用
TTS-Vue终极指南:如何快速构建高性能本地语音合成应用 【免费下载链接】tts-vue 🎤 微软语音合成工具,使用 Electron Vue ElementPlus Vite 构建。 项目地址: https://gitcode.com/gh_mirrors/tt/tts-vue 在数据安全和网络稳定性成…...
优化Blazor渲染逻辑的实践
在Blazor应用程序开发中,页面渲染逻辑的优化是提升用户体验的重要环节。特别是当页面包含多个条件渲染的组件时,如何高效地控制渲染流程成为了一个关键问题。本文将通过一个实际的案例,展示如何在Blazor中使用RenderFragment和return语句来优化页面渲染逻辑。 背景 假设我…...
TranslucentTB高效配置指南:场景化方案实现Windows任务栏个性化
TranslucentTB高效配置指南:场景化方案实现Windows任务栏个性化 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 作为一款开源…...
告别‘Setup is running...’卡死!保姆级PowerBuilder 9.0安装避坑指南(附安全模式备用方案)
PowerBuilder 9.0安装全攻略:从卡死困境到流畅部署的终极解决方案 如果你曾经在安装PowerBuilder 9.0时遭遇过"Setup is running..."的无限卡死,那么这篇文章就是为你量身定制的救星。作为一款经典的企业级开发工具,PowerBuilder至…...
seo网站宝可以做哪些SEO分析报告
SEO网站宝可以做哪些SEO分析报告? 在当前互联网市场竞争激烈的情况下,SEO(搜索引擎优化)已经成为每个企业提升网站流量和品牌知名度的重要手段。作为一款广受好评的SEO工具,SEO网站宝能够为用户提供多种分析报告&…...
RavenDB全文搜索与NGram分析器的实际应用
引言 在现代的数据库系统中,全文搜索功能已成为一个不可或缺的部分。RavenDB,作为一个强大的NoSQL数据库,提供了丰富的文本搜索功能。特别是通过使用NGram分析器,可以大大提升搜索的灵活性和准确性。本文将深入探讨RavenDB的全文搜索机制,特别是NGram分析器在索引和查询时…...
Windows下OpenClaw安装指南:快速对接Phi-3-vision-128k-instruct图文模型
Windows下OpenClaw安装指南:快速对接Phi-3-vision-128k-instruct图文模型 1. 环境准备与安装 在Windows系统上部署OpenClaw需要先确保基础环境就绪。我使用的是Windows 11专业版22H2版本,整个过程大约需要15分钟。建议提前准备管理员权限的PowerShell窗…...
别再只调包了!用Python从零手搓K-Means,在鸢尾花数据集上彻底搞懂聚类
从零实现K-Means:用Python解剖聚类算法的灵魂 当你熟练地调用sklearn.cluster.KMeans.fit()时,是否曾好奇那个神秘的max_iter参数背后究竟发生了什么?本文将带你用纯Python实现K-Means的核心引擎,在鸢尾花数据集上逐行代码拆解聚类…...
SEO_2024年最新SEO趋势与实战操作指南(313 )
2024年最新SEO趋势分析:揭秘百度收录的核心要点 在数字营销的快速发展中,SEO(搜索引擎优化)始终是网站运营者和内容创作者关注的重点。尤其是在中国市场,百度作为主流搜索引擎,其优化策略和趋势更是需要深…...
