记录如何用python将本地文件上传至服务器
# 背景
最近开发过程中,遇到需要将文件从本地传输到服务器的情况。本文将详细介绍如何使用Python来实现文件传输到服务器的过程。
# 实现步骤
- 使用
paramiko
连接远端服务器 - 遍历本地文件夹里的文件,这里主要是图片。
- 遍历时判断对应远端文件是否存在,如果存在就跳过,不存在则上传该文件至服务器。
# 参考代码
新建文件 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()