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

2024-02-03 13:04:40 浏览数 (2)

记录如何用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()

# 参考资料

  • paramiko

0 人点赞