Python连接sftp指定端口并下载文件脚本

目标:

python如何实现连接sftp指定端口并下载.gz文件到指定目录,再解压后将.bat文件后缀替换成.csv

import os
import paramiko
import gzip
import shutil

# SFTP 连接信息
hostname = 'example.com'
port = 2222
username = 'your_username'
password = 'your_password'
remote_path = '/path/to/file.gz'
local_directory = '/path/to/save/files/'


# 连接 SFTP
transport = paramiko.Transport((hostname, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)

# 判断远程文件夹是否存在 .ok 文件
file_list = sftp.listdir(remote_path)
if '.ok' not in file_list:
    print("远程文件夹中不存在 .ok 文件")
    sftp.close()
    transport.close()
    exit()

# 下载文件
local_filename = os.path.join(local_directory, os.path.basename(remote_path))
sftp.get(remote_path, local_filename)

# 解压文件
output_filename = os.path.splitext(local_filename)[0]  # 去除后缀 .gz
with gzip.open(local_filename, 'rb') as f_in:
    with open(output_filename, 'wb') as f_out:
        shutil.copyfileobj(f_in, f_out)

# 后缀替换
new_filename = os.path.splitext(output_filename)[0] + '.csv'  # 将 .bat 替换为 .csv
os.rename(output_filename, new_filename)

# 关闭连接
sftp.close()
transport.close()

【拓展】
windows连接sftp的命令

sftp -oPort=port username@hostname
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今晚务必早点睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值