使用Python请求库发布文本文件

使用Python请求库发布文本文件,python,post,http-request,python-requests,Python,Post,Http Request,Python Requests,您好,我在使用Python请求库()发布文本文件时遇到问题,您能告诉我我做错了什么吗 我试着搜索相关的问题,找到了这个,但它没有回答我的问题 这是我的密码: import codecs import requests # Create a text file savedTextFile = codecs.open('mytextfile.txt', 'w', 'UTF-8') # Add some text to it savedTextFile.write("line one text f

您好,我在使用Python请求库()发布文本文件时遇到问题,您能告诉我我做错了什么吗

我试着搜索相关的问题,找到了这个,但它没有回答我的问题

这是我的密码:

import codecs
import requests

# Create a text file
savedTextFile = codecs.open('mytextfile.txt', 'w', 'UTF-8')

# Add some text to it
savedTextFile.write("line one text for example\n and line two text for example")

# Post the file THIS IS WHERE I GET REALLY TRIPPED UP
myPostRequest = requests.post("https://someURL.com", files=savedTextFile)
我已经尝试了上面的一些变化,但我没有取得任何进展(每次都有新的错误)。如何发布我刚刚创建的这个txt文件?我试图发布到的API要求向其发布一个文本文件


感谢您的帮助

files参数要求文件名的dict与文件处理程序匹配。源代码(当前第69行)对此进行了描述:

有时最好的文档是代码

最后一行应该如下所示:

myPostRequest = requests.post("https://someURL.com", files={'mytextfile.txt': savedTextFile})

我打算在我的答案中添加更多内容,因为我还注意到,您只打开了用于写作的文件。对于能够实际读取文件的请求,您需要打开文件进行读写。此外,您还需要在写完文本后将“seek”重置为0。如果这样做的目的不是以一个本地文件结束,而是将文本作为一个文件发布,而实际的文件只是达到目的的一种手段,那么我建议使用python标准库中的StringIO模块来编写文本。它将像一个文件,但完全在内存中。
myPostRequest = requests.post("https://someURL.com", files={'mytextfile.txt': savedTextFile})