首先,实现上传文件到Linux指定目录的方法需要使用到Python的paramiko模块,该模块提供了SSH连接和文件传输功能。
安装paramiko模块
使用pip install命令安装paramiko模块:
!pip install paramiko
连接Linux服务器
首先,需要进行SSH连接:
import paramiko
hostname = 'your_linux_host' # Linux服务器地址
port = 22 # 端口号一般为22
username = 'your_username' # Linux服务器用户名
password = 'your_password' # Linux服务器密码
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接没有SSH密钥的主机
client.connect(hostname, port, username, password)
上传文件
上传单个文件
local_file_path = '/path/to/local/file.txt' # 本地文件路径
remote_dir_path = '/path/to/remote/dir/' # 远程目录路径
sftp = client.open_sftp()
sftp.put(local_file_path, remote_dir_path + 'file.txt') # 将本地文件上传到远程目录中
sftp.close()
上传多个文件
local_dir_path = '/path/to/local/dir' # 本地目录路径
remote_dir_path = '/path/to/remote/dir/' # 远程目录路径
sftp = client.open_sftp()
for file in os.listdir(local_dir_path):
if os.path.isfile(os.path.join(local_dir_path, file)):
sftp.put(os.path.join(local_dir_path, file), remote_dir_path + file) # 依次上传本地目录中的文件到远程目录中
sftp.close()
关闭连接
操作完成后,需要关闭连接:
client.close()
以上就是简单的Python实现上传文件到Linux指定目录的方法。 示例:
- 上传本地文件到远程服务器的目录中
import paramiko
hostname = '1.2.3.4' # Linux服务器地址
port = 22 # 端口号一般为22
username = 'root' # Linux服务器用户名
password = 'your_password' # Linux服务器密码
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接没有SSH密钥的主机
client.connect(hostname, port, username, password)
local_file_path = '/local/path/to/file.txt'
remote_dir_path = '/remote/path/to/dir/'
sftp = client.open_sftp()
sftp.put(local_file_path, remote_dir_path + 'file.txt')
sftp.close()
client.close()
- 上传本地目录中的所有文件到远程服务器的目录中
import paramiko
import os
hostname = '1.2.3.4' # Linux服务器地址
port = 22 # 端口号一般为22
username = 'root' # Linux服务器用户名
password = 'your_password' # Linux服务器密码
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接没有SSH密钥的主机
client.connect(hostname, port, username, password)
local_dir_path = '/local/path/to/dir'
remote_dir_path = '/remote/path/to/dir/'
sftp = client.open_sftp()
for file in os.listdir(local_dir_path):
if os.path.isfile(os.path.join(local_dir_path, file)):
sftp.put(os.path.join(local_dir_path, file), remote_dir_path + file)
sftp.close()
client.close()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现上传文件到linux指定目录的方法 - Python技术站