Python自动脚本文件传输指的是使用Python编写自动化脚本程序,实现文件在不同终端之间的传输。本文将从不同的角度对Python自动脚本文件传输进行详细阐述。
一、使用FTP协议传输文件
1、使用ftplib模块连接FTP服务器
import ftplib
ftp = ftplib.FTP('ftp.server.com')
ftp.login('username', 'password')
2、上传文件到FTP服务器
filename = 'example.txt'
with open(filename, 'rb') as file:
ftp.storbinary(f'STOR {filename}', file)
3、从FTP服务器下载文件
filename = 'example.txt'
with open(filename, 'wb') as file:
ftp.retrbinary(f'RETR {filename}', file.write)
二、使用SFTP协议传输文件
1、使用paramiko库连接SFTP服务器
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('sftp.server.com', username='username', password='password')
sftp = ssh.open_sftp()
2、上传文件到SFTP服务器
local_path = 'example.txt'
remote_path = '/path/to/remote/example.txt'
sftp.put(local_path, remote_path)
3、从SFTP服务器下载文件
local_path = 'example.txt'
remote_path = '/path/to/remote/example.txt'
sftp.get(remote_path, local_path)
三、使用HTTP协议传输文件
1、使用requests库发送HTTP请求
import requests
url = 'http://example.com/upload'
filename = 'example.txt'
files = {'file': open(filename, 'rb')}
response = requests.post(url, files=files)
2、使用flask库接收HTTP请求并保存文件
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
file.save('/path/to/save/example.txt')
return 'File saved successfully'
if __name__ == '__main__':
app.run()
四、使用Socket传输文件
1、创建服务端
import socket
host = '127.0.0.1'
port = 9000
server_socket = socket.socket()
server_socket.bind((host, port))
server_socket.listen(1)
client_socket, client_address = server_socket.accept()
2、创建客户端
import socket
host = '127.0.0.1'
port = 9000
client_socket = socket.socket()
client_socket.connect((host, port))
3、服务端发送文件给客户端
filename = 'example.txt'
with open(filename, 'rb') as file:
while True:
data = file.read(1024)
if not data:
break
client_socket.send(data)
4、客户端接收文件
filename = 'example.txt'
with open(filename, 'wb') as file:
while True:
data = client_socket.recv(1024)
if not data:
break
file.write(data)
五、使用云存储服务传输文件
1、使用boto3库连接云存储服务
import boto3
s3 = boto3.client('s3', aws_access_key_id='YOUR_ACCESS_KEY', aws_secret_access_key='YOUR_SECRET_KEY')
2、上传文件到云存储服务
filename = 'example.txt'
bucket_name = 'example-bucket'
s3.upload_file(filename, bucket_name, filename)
3、从云存储服务下载文件
filename = 'example.txt'
bucket_name = 'example-bucket'
s3.download_file(bucket_name, filename, filename)
以上是关于Python自动脚本文件传输的几种方法和示例代码,可以根据不同的需求选择合适的方法进行文件传输。