-
-
Notifications
You must be signed in to change notification settings - Fork 371
Open
Description
Hello,
I'm unable to download files from Sharepoint following the examples provided in the documentation, and the error I receives leaves me puzzled
I'm able to connect / browse and retrieve files metadata.
with f an instance of office365-rest-python-client/office365/sharepoint/files/file.py File, retrieved as an element of folder.get_files().get().execute_query()
I tried both
with open(os.path.join('.', f.name), 'wb') as local_file:
ctx.web.get_file_by_id(f.unique_id).execute_query().download(local_file)and
with open(os.path.join('.', f.name), 'wb') as local_file:
f.download(local_file).execute_query()Both thoses attempts will fail with the same issue
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[42], line 6
4 try:
5 with open(os.path.join('.', f.name), 'wb') as local_file:
----> 6 ctx.web.get_file_by_id(f.unique_id).execute_query().download(local_file)
7 except:
8 raise
File .venv/lib/python3.12/site-packages/office365/runtime/client_object.py:55, in ClientObject.execute_query(self)
52 def execute_query(self):
53 # type: () -> Self
54 """Submit request(s) to the server."""
---> 55 self.context.execute_query()
56 return self
File .venv/lib/python3.12/site-packages/office365/runtime/client_runtime_context.py:173, in ClientRuntimeContext.execute_query(self)
171 while self.has_pending_request:
172 qry = self._get_next_query()
--> 173 self.pending_request().execute_query(qry)
174 return self
File .venv/lib/python3.12/site-packages/office365/runtime/client_request.py:39, in ClientRequest.execute_query(self, query)
37 response = self.execute_request_direct(request)
38 self.process_response(response, query)
---> 39 self.afterExecute.notify(response)
40 except HTTPError as e:
41 raise ClientRequestException(*e.args, response=e.response)
File .venv/lib/python3.12/site-packages/office365/runtime/types/event_handler.py:41, in EventHandler.notify(self, *args, **kwargs)
39 if self._once:
40 self._listeners.remove(listener)
---> 41 listener(*args, **kwargs)
File .venv/lib/python3.12/site-packages/office365/runtime/client_runtime_context.py:141, in ClientRuntimeContext.after_query_execute.<locals>._process_response(resp)
139 if self.current_query.id == query.id:
140 self.pending_request().afterExecute -= _process_response
--> 141 action(resp if include_response else query.return_type)
File .venv/lib/python3.12/site-packages/office365/sharepoint/files/file.py:662, in File.download.<locals>._save_content(return_type)
660 def _save_content(return_type):
661 # type: (ClientResult[AnyStr]) -> None
--> 662 file_object.write(return_type.value)
663 if callable(after_downloaded):
664 after_downloaded(self)
ValueError: write to closed file
I don't understand how my local file can be closed as we only go deeper and never exit the with statement
Metadata
Metadata
Assignees
Labels
No labels