使用请求关闭发送到 url 的文件 - Python
close a file sent to url using Requests - Python
在我的项目中,我必须将一些文本作为文件上传到烧瓶服务器。
我尝试了以下方法,但遇到了一些问题:
with open(os.path.join(os.getcwd(), "testfile.txt"), 'w+') as myFile:
myFile.write(content)
myFile.close()
file = {'file': open(os.path.join(os.getcwd() , 'testfile.txt'), 'rb')}
data = {'data': somedata}
headers = {'Accept-Encoding': 'identity'}
with requests.post(upload_url, files=file, data=data, headers=headers) as resp:
html = resp.content
os.remove(os.path.join(os.getcwd(), 'testfile.txt'))
因为我只需要将文本作为文件上传,所以我创建了一个临时文件,写入内容,然后将其删除,但是这段代码给出了以下错误
Traceback (most recent call last):
File "D:\PythonTest\test.py", line 121, in upload
os.remove(os.path.join(os.getcwd(), 'testfile.txt'))
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'D:\PythonTest\testfile.txt'
据我从 'error report' 中了解到,这是因为文件在我发出的 post 请求中打开。但我已将 post 请求包含在 'with' 块中,因此它应该会自动关闭它。我做错了什么?
如有任何帮助和建议,我们将不胜感激。
此错误是由于您在此行再次打开文件而没有关闭造成的
file = {'file': open(os.path.join(os.getcwd() , 'testfile.txt'), 'rb')}
你也应该在这里使用 with open
在我的项目中,我必须将一些文本作为文件上传到烧瓶服务器。 我尝试了以下方法,但遇到了一些问题:
with open(os.path.join(os.getcwd(), "testfile.txt"), 'w+') as myFile:
myFile.write(content)
myFile.close()
file = {'file': open(os.path.join(os.getcwd() , 'testfile.txt'), 'rb')}
data = {'data': somedata}
headers = {'Accept-Encoding': 'identity'}
with requests.post(upload_url, files=file, data=data, headers=headers) as resp:
html = resp.content
os.remove(os.path.join(os.getcwd(), 'testfile.txt'))
因为我只需要将文本作为文件上传,所以我创建了一个临时文件,写入内容,然后将其删除,但是这段代码给出了以下错误
Traceback (most recent call last):
File "D:\PythonTest\test.py", line 121, in upload
os.remove(os.path.join(os.getcwd(), 'testfile.txt'))
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'D:\PythonTest\testfile.txt'
据我从 'error report' 中了解到,这是因为文件在我发出的 post 请求中打开。但我已将 post 请求包含在 'with' 块中,因此它应该会自动关闭它。我做错了什么?
如有任何帮助和建议,我们将不胜感激。
此错误是由于您在此行再次打开文件而没有关闭造成的
file = {'file': open(os.path.join(os.getcwd() , 'testfile.txt'), 'rb')}
你也应该在这里使用 with open