python上传文件
直接在系统命令行中输入bypy命令,将会列出所有的命令的使用信息。
授权
在命令行中输入bypy info,将会出现一个提示,按照提示完成授权,完成了授权Python代码才能和你的网络云盘进行通信。
常用命令
新建文件夹,在网络网盘中新建一个文件夹:
mkdir(remotepath='bypy'),将会新建一个bypy文件夹,如图:
新建的文件夹
上传文件:
upload(localpath='c:\\new\\timg.jpg',remotepath='bypy',onp='new')
参数说明:
localpath:本地的目录,如果省略则为当前目录。
remotepath:云盘目录
onp:当出现重复文件时如何处理,默认是overwrite,安全起见可以更改为new
Python 代码实例
from bypy import ByPy
bp = ByPy()
bp.mkdir(remotepath='bypy')
bp.upload(localpath='c:\\new\\timg.jpg',remotepath='bypy',onp='new')
print('上传完毕!')
注意:
中文文件名可能会出现问题,最好使用英文文件名。
㈡ 如何用 Python 做大文件上传的服务端
这个果断要用tornado啊。html5的 Filesystem Api,可以读取一个本地文件为blob,然后可以按任意字节切分slice。这不就是断点上传么。
Google Gears时代我就实现了个多线程上传的。python的socket手写http协议。很好玩。
㈢ 怎么用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的文件上传
Python中使用GET方法实现上传文件,下面就是用Get上传文件的例子,client用来发Get请求,server用来收请求。
请求端代码:
importrequests#需要安装requests
withopen('test.txt','rb')asf:
requests.get('http://服务器IP地址:端口',data=f)
服务端代码:
varhttp=require('http');
varfs=require('fs');
varserver=http.createServer(function(req,res){
//console.log(req);
varrecData="";
req.on('data',function(data){
recData+=data;
})
req.on('end',function(data){
recData+=data;
fs.writeFile('recData.txt',recData,function(err){
console.log('filereceived');
})
})
res.end('hello');
})
server.listen(端口);
㈤ 如何在 Python 中模拟 post 表单来上传文件
最近有个将文件上传到内部web服务器上的任务,于是参考了网上部分源码用python写了这个小程序,代码如下:
[python]view plain
#coding:utf-8
'''''
Createdon2015.3.19
@author:damofy
'''
importos
importtime
importsys
importurllib2
'''''
filename待上传的文件
fieldname表单域中的name属性
'''
defCreateBody(filename,fieldname,strBoundary):
bRet=False
sData=[]
sData.append('--%s'%strBoundary)
#'Content-Disposition:form-data;name="uploadfile";filename="XX-Net-1.3.6.zip"'
sData.append('Content-Disposition:form-data;name="%s";'%fieldname+'filename="%s"'%os.path.basename(filename))
sData.append('Content-Type:%s '%'application/octet-stream')
try:
pFile=open(filename,'rb')
sData.append(pFile.read())
sData.append('--%s-- '%strBoundary)
bRet=True
finally:
pFile.close()
returnbRet,sData
defuploadfile(http_url,filename,fieldname):
ifos.path.exists(filename):
filesize=os.path.getsize(filename)
print('file:'+filename+'is%dbytes!'%filesize)
else:
print('file:'+filename+'isn'texists!')
returnFalse
strBoundary='---------------------------%s'%hex(int(time.time()*1000))
bRet,sBodyData=CreateBody(filename,fieldname,strBoundary)
ifTrue==bRet:
http_body=' '.join(sBodyData)
stReq=urllib2.Request(http_url,http_body)
stReq.add_header('User-Agent','Mozilla/5.0')
stReq.add_header('Content-Length:','%d'%filesize)
stReq.add_header('Content-Type','multipart/form-data;boundary=%s'%strBoundary)
resp=urllib2.urlopen(stReq,timeout=5)
#getresponse
msg=resp.read()
print("Responsecontent: "+msg)
else:
print("CreateBodyfailed!")
returnbRet
if__name__=='__main__':
iflen(sys.argv)>2:
http_url=sys.argv[1]
filename=sys.argv[2]
else:
print('pythonupload.pyhttp://10.20.131.23/upload./test.dat')
sys.exit()
#参数3"uploadfile"是post表单中的name属性,需要与服务端保持一致
uploadfile(http_url,filename,'uploadfile')
㈥ python、FileReference、上传文件
数据微化处理传送
㈦ 如何把python代码上传到服务器上
使用pip或easy_install可以管理和安装python的package包,实际上它们都是从pypi服务器中搜索和下载package的。目前在pypi服务器上,有超过三万多个package,同时还允许我们将自己的代码也上传发布到服务器上。这样,世界上的所有人都能使用pip或easy_install来下载使用我们的代码了。
具体步骤如下:
首先创建项目文件和setup文件。
目录文件结构如下:
project/
simpletest/
__init__.py
test.py
setup.py
假设项目文件只有一个simpletest包,里面有一个test.py文件。
创建的setup.py文件格式大致如下,其中,install_requires字段可以列出依赖的包信息,用户使用pip或easy_install安装时会自动下载依赖的包。详细的格式参考文档。
from setuptools import setup, find_packages
setup(
name = 'simpletest',
version = '0.0.1',
keywords = ('simple', 'test'),
description = 'just a simple test',
license = 'MIT License',
install_requires = ['simplejson>=1.1'],
author = 'yjx',
author_email = '[email protected]',
packages = find_packages(),
platforms = 'any',
)
然后将代码打包。
打包只需要执行python
setup.py xxx命令即可,其中xxx是打包格式的选项,如下:
# 以下所有生成文件将在当前路径下 dist 目录中
python setup.py bdist_egg # 生成easy_install支持的格式
python setup.py sdist # 生成pip支持的格式,下文以此为例
发布到pypi。
发布到pypi首先需要注册一个账号,然后进行如下两步:
注册package。输入python setup.py register。
上传文件。输入python setup.py sdist upload。
安装测试
上传成功后,就可以使用pip来下载安装了。
另外,pypi还有一个测试服务器,可以在这个测试服务器上做测试,测试的时候需要给命令指定额外的"-r"或"-i"选项,如python
setup.py register -r "",python
setup.py sdist upload -r "",pip
install -i "" simpletest。
发布到测试服务器的时候,建议在linux或cygwin中发布,如果是在windows中,参考文档,需要生成.pypirc文件
㈧ python能直接通过url上传文件吗
可以这样写:
urls = sel.xpath('//li[@class="next_article"]/a/@href').extract()
for url in urls:
url = "http://blog.csdn.net" + url
yield Request(url, callback=self.parse)
㈨ python selenium怎么自动上传文件
给你个例子:
ifnotimg_path:
img_path=os.path.abspath("../res/cvd_test.jpg")
else:
img_path=path.abspath(img_path)
#
up_img_input=WebDriverWait(self.driver,10).until(
EC.presence_of_element_located((By.ID,"updli_file"))
)
up_img_input.send_keys(img_path)
send_img_btn=WebDriverWait(self.driver,10).until(
EC.element_to_be_clickable((By.ID,"send-pic-img"))
)
#time.sleep(self.send_interval)
send_img_btn.click()
上面实现的工作就是,找到上传组件的那个input元素,然后把你要上传的文件的路径发送给ta
㈩ pythonweb前后端分离项目怎么实现单文件上传
在HTML上传到后台接收时,又要把接收到的文件或图片复制到项目下面,要不然就没显示。所以自己总结了下怎么样把文件上传到指定文件目录下
感觉还挺实用的,别人通过局域网访问我的项目来上传图片,我的项目也能接收复制到指定目录下,服务器没试过,但还是来分享下。