前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python实现文件批量上传至服务器

python实现文件批量上传至服务器

作者头像
薛定喵君
发布2024-02-03 13:04:40
1490
发布2024-02-03 13:04:40
举报
文章被收录于专栏:薛定喵君薛定喵君

记录如何用python将本地文件上传至服务器

# 背景

最近开发过程中,遇到需要将文件从本地传输到服务器的情况。本文将详细介绍如何使用Python来实现文件传输到服务器的过程。

# 实现步骤

  1. 使用paramiko 连接远端服务器
  2. 遍历本地文件夹里的文件,这里主要是图片。
  3. 遍历时判断对应远端文件是否存在,如果存在就跳过,不存在则上传该文件至服务器。

# 参考代码

新建文件 main.py 输入如下参考代码:

代码语言:javascript
复制
import json
import os
import paramiko

def upload():
    # all_pics 为本地文件名称数组
    # 文件存放在 E:\xxx 目录下面
    all_pics = ['xxx']
    with open(r'.\config.json', 'r') as f:
        config = json.load(f)
        host = config['host']
        username = config['username']
        password = config['password']

        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        try:
            ssh.connect(hostname=host, port=22, username=username, password=password)
            sftp = ssh.open_sftp()

            for pic in all_pics:
                pic_name = pic['name'] + '.png'
                try:
                    sftp.stat('/www/xxx/' + pic_name)
                    print(pic_name)
                except IOError:
                    print('copying file')
                    local_path = r'E:\xxx\\' + pic_name
                    remote_path = '/www/xxx/' + pic_name
                    sftp.put(local_path, remote_path)

            sftp.close()
        except Exception as e:
            print(f"文件传输失败: {str(e)}")
        finally:
            ssh.close()

if __name__ == '__main__':
    upload()

# 参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 背景
  • # 实现步骤
  • # 参考代码
  • # 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档