用于上传到服务器的Python脚本

标签 python upload python-requests

我是 Python 新手,这是第一篇文章。想要上传一个TXT文件到服务器,(到目前为止,它是本地主机)。每次,我运行脚本,本地文件上传并更新到服务器上。我正在使用Requests模块

import requests, time
url ='http://192.168.49.205/test/database/data.txt'  # where i want to write 
files = {'file':('data.txt','C:\Python27\data.txt','rb')}
#r = requests.post(url,files=files) # this works too

r= requests.post('http://192.168.49.205/test/database/data.txt',
data={'upload_type': 'standard',          'upload_to': '0'},files=files)

print r.status_code
print r.text

data.txt 未更新。只是看到旧数据(我在创建文件时输入了一些值)。我没有使用 PHP 或 HTML 中的任何表单。可以用方法上传吗?

相信,在发布问题后我得到了一些清晰的答案。现在,服务器端有 PHP 文件监听客户端。这是“post.php”。因此,这将替换客户端的文本文件。 PHP 文件从客户端获取名称、任务、值并发布到服务器(本地)上的“a.txt”

 <?php    
 if(isset($_GET["Name"])){
 $name=$_GET["Name"];   
 }

 if(isset($_GET["Task"])){
 $task=$_GET["Task"];   
 }

if(isset($_GET["Value"])){
$value=$_GET["Value"];   
}

$f=fopen("a.txt","w") or exit("Unable to open file!");
fwrite($f,$name);
fwrite($f,"  ");
fwrite($f,$task);
fwrite($f,"  ");
fwrite($f,$value);
fclose($f);

?>`

现在请求看起来像这样

 import requests, time
 url = 'http://192.168.49.205/test/test.php' 
 post_data = {'Name':'job','Task':'008','Value':'8'}

 r= requests.post('http://192.168.49.205/test/post.php', data= post_data)


print r.status_code
print r.text

值仍然没有达到“a.txt”。我缺少什么?请指教!

最佳答案

您没有读取代码中的文件内容。 requests documentation状态:

files – (optional) Dictionary of ‘name’: file-like-objects (or {‘name’: (‘filename’, fileobj)}) for multipart encoding upload.

您的代码建议您使用第二个选项。但是:

files = {'file':('data.txt','C:\Python27\data.txt','rb')}

没有按照文档所示创建结构 - 您传递的是 3 个字符串的元组,而不是 (string, file_obj) 的元组。您可能想这样做:

files = {'file':('data.txt',open('C:\Python27\data.txt','rb'))}

关于用于上传到服务器的Python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20098761/

相关文章:

python - 加速 Pandas 通过请求申请 API 调用

python - pysftp 复制文件但它是空的

python - tkinter 在 Canvas 上可变值

带有换行符的 Python 打印数组

python - keras 中的 y_pred 是什么?

spring - 文件上传 API 在 Postman 中有效,但在 React JS 中无效

html - 上传图像文件时如何禁用捕获(在 ipad 上使用 safari)

php - 上传具有图像文件的表单而不刷新页面

python - Django Rest 框架 : empty request. 数据

python - Python 中的 Web 服务?