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

2023-11-18 17:54:17

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

背景

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

实现步骤

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

参考代码

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


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()

参考资料

本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

扫描下方二维码阅读当前文章

浏览器、微信扫码

评 论:

好文推荐
每天进步一点点~