当前位置:首页 » 文件管理 » python上传文件到服务器

python上传文件到服务器

发布时间: 2023-01-20 08:48:50

‘壹’ python程序怎么部署到云服务器

你需要登录云服务器管理控制台,记录被我打马赛克位置的公网ip。

登录服务器
windows推荐下putty进行连接远程服务器,linux和macos不需要那么麻烦,ssl就行了。

putty
在下图的host name中输入你的公网IP,点击open。

putty界面
输入密码,看不见输入不要慌,linux就是这样保护安全的。

Paste_Image.png
登录成功界面见下图,然后想怎么操作就怎么操作了。

登陆成功界面
运行我的python文件
推荐FileZilla进行文件传输(不具体说明了),我上传了我的flask网站项目

我的项目
记住服务器同时有Python2和Python3,

python
运行的时候记得使用合适的版本,我用的是虚拟环境(自行网络如何创建虚拟环境)
在运行python之前先安装一个screen,他可以将一个程序在后台运行
sudo apt-get install screen

运行python文件,成功后按下ctrl+A和ctrl+D可以隐藏。隐藏后可以输入screen -r 恢复。

运行成功

‘贰’ python的paramiko模块 支持连接交换机吗

paramiko使用

paramiko模块是基于python实现了SSH2远程安全连接,支持认证和密钥方式,可以实现远程连接、命令执行、文件传输、中间SSH代理功能

安装

pip install paramiko
或 easy_install paramiko
paramiko依赖第三方的Crypto,Ecdsa和pyhton-devel,所以需要安装

paramiko核心组件

SSHClient类

SSHClient类是SSH服务会话的高级表示,该类实现了传输、通道、以及Sftp的校验、建立的方法

  • connect 方法

    connect方法实现了远程ssh连接并作校验

  • hostname 连接的目标主机

  • port=SSH_PORT 指定端口

  • username=None 验证的用户名

  • password=None 验证的用户密码

  • pkey=None 私钥方式用于身份验证

  • key_filename=None 一个文件名或文件列表,指定私钥文件

  • timeout=None 可选的tcp连接超时时间

  • allow_agent=True, 是否允许连接到ssh代理,默认为True 允许

  • look_for_keys=True 是否在~/.ssh中搜索私钥文件,默认为True 允许

  • compress=False, 是否打开压缩

  • sock=None,

  • gss_auth=False,

  • gss_kex=False,

  • gss_deleg_creds=True,

  • gss_host=None,

  • banner_timeout=None

  • 参数

  • exec_command方法

    远程执行命令的方法,该命令的输入与输出流为标准输入、标出输出、标准错误输出

  • command 执行的命令

  • bufsize=-1 文件缓冲区大小

  • timeout=None

  • get_pty=False

  • 参数

  • load_system_host_key方法

    夹在本地公钥文件,默认为~/.ssh/known_hosts

  • filename=None 指定本地公钥文件

  • 参数

  • set_missing_host_key_policy方法
    设置连接的远程主机没有本地主机密钥或HostKeys对象时的策略,目前支持三种:

    用法:
    set_missing_host_key_policy(paramiko.AutoAddPolicy())

  • AutoAddPolicy 自动添加主机名及主机密钥到本地HostKeys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认

  • WarningPolicy 用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接

  • RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项

  • SFTPClient类

    SFTPCLient作为一个sftp的客户端对象,根据ssh传输协议的sftp会话,实现远程文件操作,如上传、下载、权限、状态

  • from_transport(cls,t) 创建一个已连通的SFTP客户端通道

  • put(localpath, remotepath, callback=None, confirm=True) 将本地文件上传到服务器 参数confirm:是否调用stat()方法检查文件状态,返回ls -l的结果

  • get(remotepath, localpath, callback=None) 从服务器下载文件到本地

  • mkdir() 在服务器上创建目录

  • remove() 在服务器上删除目录

  • rename() 在服务器上重命名目录

  • stat() 查看服务器文件状态

  • listdir() 列出服务器目录下的文件

  • 远程连接并执行命令

    实现远程连接主机,并执行命令,同时记录日志
    * 直接验证方式


‘叁’ python 怎么实现两台服务器上批量复制文件

1、把excel里文件名那一列复制,粘进一个空白的文本文件,命名为filelist.txt,上传到服务器。

2、在服务器上使用脚本导出,python脚本 fileCp.py 。

代码示例:
#! python
#coding:utf-8

##!/usr/bin/python
# Filename : fileCp.py
import sys
import os
import shutil

fileList='filelist.txt'
targetDir='files'

filedir = open(fileList)
line = filedir.readline()
log = open('running.log','w')
while line:
line = line.strip('\n');
basename = os.path.basename(line)
exists = os.path.exists(line)
if exists :
print ' '+line+' to '+os.getcwd()+'/'+targetDir+'/'+basename
log.write(' '+line+' to '+os.getcwd()+'/'+targetDir+'/'+basename+'\r\n')
shutil.(line,targetDir+'/'+basename)
else:
print line+' not exists'
log.write(line+' not exists'+'\r\n')
line = filedir.readline()
log.close()

‘肆’ 怎么用http上传一个文件到服务器 python

首先,标准HTTP协议对上传文件等表单的定义在这里:wwwietforg/rfc/rfc1867txt 大概数据包格式如下:

单文件:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="field1"

Joe Blow
--AaB03x
content-disposition: form-data; name="pics"; filename="file1.txt"
Content-Type: text/plain

... contents of file1.txt ...
--AaB03x--
多文件:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="field1"

Joe Blow
--AaB03x
content-disposition: form-data; name="pics"
Content-type: multipart/mixed, boundary=BbC04y

--BbC04y
Content-disposition: attachment; filename="file1.txt"
其次,python上传文件的几种方法:

1 自己封装HTTP的POST数据包:http//stackoverflowcom/questions/680305/using-multipartposthandler-to-post-form-data-with-python

import httplibimport mimetypesdef post_multipart(host, selector, fields, files): content_type, body = encode_multipart_formdata(fields, files) h = httplib.HTTP(host) h.putrequest('POST', selector) h.putheader('content-type', content_type) h.putheader('content-length', str(len(body))) h.endheaders() h.send(body) errcode, errmsg, headers = h.getreply() return h.file.read() def encode_multipart_formdata(fields, files): LIMIT = '----------lImIt_of_THE_fIle_eW_$' CRLF = '\r\n' L = [] for (key, value) in fields: L.append('--' + LIMIT) L.append('Content-Disposition: form-data; name="%s"' % key) L.append('') L.append(value) for (key, filename, value) in files:

‘伍’ 上传到云服务器的文件怎么读取(Python)

ssh 连接到服务器,cd到文件所在路径,cat该文件

‘陆’ python3前端传递的pdf文件对象如何存储到服务器的指定目录

1.前端页面
<form action="/upload" method="post" enctype="multipart/form-data">
文件:<input type="file" name="testUpload"/>
<input type="submit" />
</form>
2.java代码
@RequestMapping(value = "upload")
@ResponseBody
public String upload(@RequestParam("testUpload") MultipartFile file) {
if (file.isEmpty()) {
return "文件为空";
}
// 获取文件名
String fileName = file.getOriginalFilename();
System.out.println("上传的文件名为:" + fileName);
// 获取文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
System.out.println("上传的后缀名为:" + suffixName);
// 文件上传后的路径
String filePath = "E://test//";
File dest = new File(filePath + fileName);
// 检测是否存在目录
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
return "上传成功";
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败";
}

‘柒’ 树莓派 python 如何将本地文件上传到指定的服务器页面上

以下是单个文件的,不确定你的文件夹是什么意思,可以压缩下再上传(方法一样,调用zip命令)

我的实现方法:调用终端的curl,以下为代码平片段,实现的功能是上传log文件到服务器,供参考:

defpost_log(self,post_url,del_source_file=True):
'''
postlogtologserver
'''
ifself.log_path:
command="curl-s-Flog=@{0}{1}".format(self.log_path,post_url)
return_str=os.popen(command).read()
logging.debug(return_str)
#printreturn_str
ifreturn_str=="success":
ifdel_source_file:
del_command="sudorm{0}".format(self.log_path)
os.system(del_command)
returnTrue
else:
returnFalse
returnFalse

‘捌’ 如何在 Python 中模拟 post 表单来上传文件

在机器上安装了Python的setuptools工具,可以通过下面的命令来安装 poster:
easy_install poster
装完之后,安装下面代码就可以实现post表单上传文件了:

from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2

# 在 urllib2 上注册 http 流处理句柄
register_openers()

# 开始对文件 "DSC0001.jpg" 的 multiart/form-data 编码
# "image1" 是参数的名字,一般通过 HTML 中的 <input> 标签的 name 参数设置

# headers 包含必须的 Content-Type 和 Content-Length
# datagen 是一个生成器对象,返回编码过后的参数
datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})

# 创建请求对象(localhost服务器IP地址,5000服务器端口)
request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers)
# 实际执行请求并取得返回
print urllib2.urlopen(request).read()

热点内容
电脑配置光纤接口怎么标注 发布:2024-05-17 17:06:56 浏览:976
如何用方向键控制安卓机 发布:2024-05-17 16:38:11 浏览:198
雨田系统源码 发布:2024-05-17 16:28:06 浏览:586
新手直播脚本 发布:2024-05-17 16:27:25 浏览:847
python双引号单引号 发布:2024-05-17 16:19:31 浏览:948
0xxc语言 发布:2024-05-17 16:17:40 浏览:700
php与java的区别 发布:2024-05-17 16:12:48 浏览:340
registrar服务器地址是什么 发布:2024-05-17 16:11:46 浏览:113
订阅号助手如何找到密码 发布:2024-05-17 15:57:47 浏览:712
搜解压缩 发布:2024-05-17 15:38:32 浏览:765