当前位置:首页 > 科技  > 软件

用 Python 代替 xftp 从 Linux 服务器下载文件

来源: 责编: 时间:2024-06-20 15:20:02 70观看
导读我们经常需要从Linux服务器上同步文件,但是xftp等工具都需要注册了,这里用免费的Python代码来下载文件,还可以扩展更多的自定义用法。准备工作本文需要使用paramiko库,可以使用以下命令进行安装:pip install paramiko下载

我们经常需要从Linux服务器上同步文件,但是xftp等工具都需要注册了,这里用免费的Python代码来下载文件,还可以扩展更多的自定义用法。2hP28资讯网——每日最新资讯28at.com

2hP28资讯网——每日最新资讯28at.com

准备工作

本文需要使用paramiko库,可以使用以下命令进行安装:2hP28资讯网——每日最新资讯28at.com

pip install paramiko

下载文件

先创建一个SSHClient对象,并设置缺失主机密钥的策略为自动添加,然后使用connect方法连接到服务器。需要提供服务器IP地址、端口号、用户名和密码。连接成功后,打开SFTP通道,使用open_sftp方法创建SFTP对象。SFTP是SSH协议的一部分,用于在服务器和本地之间传输文件。使用SFTP对象的open方法打开要下载的远程文件,并指定打开模式为只读。假设要下载的文件是UTF-8编码的文本文件,进行编码转换。下面是一个使用paramiko库从Linux服务器上下载文件的示例代码:2hP28资讯网——每日最新资讯28at.com

import paramiko    ssh = paramiko.SSHClient()  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  ssh.connect(hostname='your_server_ip', port=22, username='your_username', password='your_password')    sftp = ssh.open_sftp()  remote_file = sftp.open('/path/to/remote/file', 'r')   remote_file.read().decode('utf-8').encode('gbk')  

在上面的代码中,将your_server_ip替换为您的Linux服务器的IP地址,your_username替换为用户名,your_password替换为密码,/path/to/remote/file替换为要下载的远程文件的路径,/path/to/local/file替换为要保存的本地文件的路径。2hP28资讯网——每日最新资讯28at.com

保存文件

在本地创建一个文件对象,使用open方法打开,指定写入模式,并将远程文件的内容写入本地文件。最后,关闭所有的文件对象、SFTP对象和SSH连接。2hP28资讯网——每日最新资讯28at.com

2hP28资讯网——每日最新资讯28at.com

local_file.write(remote_file.read().decode('utf-8'))    remote_file.close()  local_file.close()  sftp.close()  ssh.close()

文件是否存在

为了保证每次下载都是最新,如果存在就删除后创建新文件,如果不存在就创建新文件。2hP28资讯网——每日最新资讯28at.com

# 检查文件是否存在,如果不存在则创建  if not os.path.exists('/path/to/local/file'):      with open('/path/to/local/file', 'w') as f:          pass  # 创建空文件  # 打开本地文件,指定追加模式  local_file = open('/path/to/local/file', 'a')  

使用os.path.exists函数检查文件是否存在,如果不存在则创建空文件。在打开本地文件时,指定模式为追加模式('a'),这样可以在已有内容的基础上追加新内容。2hP28资讯网——每日最新资讯28at.com

由于windows中文件是进程独占,可能未释放,会报错:2hP28资讯网——每日最新资讯28at.com

    os.remove(local_path)PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。

可以使用文件对象的truncate()方法。该方法将文件截断为指定的大小,若文件大小为零,所有内容都将被删除。2hP28资讯网——每日最新资讯28at.com

with open('file.txt', 'w') as file:      file.truncate(0)

使用with语句打开文件file.txt,并将文件对象分配给变量file,调用truncate(0)方法以将文件截断为零,删除文件中的所有内容。此方法仅适用于文本文件。如果要清除二进制文件的内容,可以使用类似的方法,但是需要将文件对象打开为二进制模式(例如'wb')。2hP28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-95150-0.html用 Python 代替 xftp 从 Linux 服务器下载文件

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 使用「设计模式」巧妙解决 BUG 的经历,妙啊~

下一篇: 用了这个库,命令行再也不黑不溜秋了

标签:
  • 热门焦点
  • 天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    这几年除了手机作为智能生活终端最主要的核心之外,第二个可以成为中心点的产品是什么?——是智能音箱。 手机在执行命令的时候有两种操作方式,手和智能语音助手,而智能音箱只
  • 女孩租房开2小时空调用完100元电费引热议:5级能耗惹不起 月薪过万电费也交不起

    女孩租房开2小时空调用完100元电费引热议:5级能耗惹不起 月薪过万电费也交不起

    近日,江苏苏州一女孩租房当天充值了100元电费,开着空调不到2小时发现电费已用完。对于为什么这个快,房东表示,电表坏了这种情况很多,之前也遇到过,给租客换
  • JavaScript 混淆及反混淆代码工具

    JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • 每天一道面试题-CPU伪共享

    每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 2023年,我眼中的字节跳动

    2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    Tech星球(微信ID:tech618)文 | 陈桥辉 Tech星球独家获悉,拼多多在其APP内上线了“本地生活”入口,位置较深,位于首页的“充值中心”内,目前主要售卖美食相关的
  • “又被陈思诚骗了”

    “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • Counterpoint :OPPO双旗舰战略全面落地 高端产品销量增长22%

    Counterpoint :OPPO双旗舰战略全面落地 高端产品销量增长22%

    2023年6月30日,全球行业分析机构Counterpoint Research发布的《中国智能手机高端市场白皮书》显示,中国智能手机品牌正在寻求高质量发展,中国高端智能
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
Top
Baidu
map