python request读写上传文件

python request读写上传文件,第1张

python 读写文件

data_json = json.dumps(result_r)  #json字符串  

f =open('E://XXX.txt',"a+")  #打开文件,追加+读写

f.write(data_json) # data_json 写入XXX.txt'文件

f.seek(0)  # 光标移动到文件开头

lines = f.read()() # 逐行读入

f.close() #关闭文件

mode 打开的方式(r,w,a,x,b,t,r+,w+,a+,U)

r 以只读方式打开文件。文件的指针会放在文件的开头。

w 以写入方式打开文件。文件存在覆盖文件,文件不存在创建一个新文件。

a 以追加方式打开文件。如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。

r+ 打开一个文件用于读写,文件指针会放在文件的开头

w+ 打开一个文件用于读写,文件存在覆盖文件,文件不存在创建一个新文件。

a+ 打开一个文件用于读写,如果文件已存在,文件指针放在文件末尾。如果文件不存在,创建新文件并可写入。

记忆方法:记住r读,w写,a追加,每个模式后加入+号就变成可读写。

f =open('E://xxx.txt',"a+")    /    f=open(r'E://xxx.txt',mode='a+',encoding='UTF-8')

踩坑1>  

没有加encoding='UTF-8',可能会报如下错:

import requests  # 使用 request函数需导入 request 库

import json   #使用 JSON 函数需要导入 json 库: import json 。

param ={} #请求body

url ='http://域名/api' 

header = {'content-type':'application/json'}

r = requests.post(url,json=param,headers=header)    #发送post请求

result_r = r.json() #请求返回的json传入对象result_r

data_json = json.dumps(result_r)  #将 Python-result_r对象转为字符串 json.dumps()

文件上传请求(csv文件)

file_path = "xxx.csv"   文件路径

uploaddata = {"file":open(file_path, "rb")}  

file_upload_result = requests.post(api_URL, files=uploaddata, cookies=cookie)

try {

//下面这句必须加,不然报错

MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext())

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request

//获取一起跟文件传过来的其他参数值

String id = multipartRequest.getParameter("id")

//获取上传上来的文件

Map<String, MultipartFile>fileMap = multipartRequest.getFileMap()

for (Map.Entry<String, MultipartFile>entry : fileMap.entrySet()){

MultipartFile file = entry.getValue()

String fileName = file.getOriginalFilename()

System.out.println(fileName)

String path = "C:\\Users\\Administrator\\Desktop" + File.separator + fileName

file.transferTo(new File(path))

}

} catch (Exception e) {

e.printStackTrace()

}

<form action="uploadURL" method="post" enctype="multipart/form-data">

标题:<input type="text" name="tit" /><br/>

内容:<input type="text" name="te" /><br/>

图片1:<input type="file" name="img1"/><br/>

图片2:<input type="file" name="img2"/><br/>

<input type="submit" value="提交">

</form>

//创建硬盘文件工厂对象,设置上传的缓存区大小和临时文件

DiskFileItemFactory disk=new DiskFileItemFactory()

//实例化servlet上传的对象,把表单的数据都放在这个对象中

ServletFileUpload up=new ServletFileUpload(disk)

List<FileItem> list=up.parseRequest(request)

//由于list中有普通表单和非普通表单 所以给定两个集合

Map<String,String>map=new HashMap<String, String>()

for(int i=0i<list.size()i++){

FileItem item=list.get(i) //获取表单的数据

if(item.isFormField()){//判断该数据属否是普通表单的数据

//获取普通表单的数据

String namename=item.getFieldName() //获取表单的名

String formvalue=item.getString() //获取输出的值

String value=new String(formvalue.getBytes("ISO-8859-1"),"utf-8") //给获取的值 设置编码

//把普通表单的数据放入map中

map.put(namename, value)

}else{

//非普通

String filename=item.getName() ////获取文件名的名

//获取服务器上upload的地址

String rootpath=getServletContext().getRealPath("upload")

//获取文件的路径

String newpath=rootpath+"\\"+filename

//写入文件

item.write(new File(newpath))

li.add(filename)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11730029.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存