Получить список файлов в личном sharepoint с помощью python

Я хочу получить список всех файлов в моем личном хранилище oneDrive/sharepoint в моей компании с помощью Python. Однако я получаю только пустой список в качестве возврата без каких-либо ошибок.

Мой code выглядит следующим образом (взято из Sharepoint_files_python):

Это дает пустой список в качестве вывода: []

И все остальное, к чему я пытаюсь получить доступ в ctx.web, также пусто, например:

[]

Мой ожидаемый результат будет: ['file.xlsx','file_35.xlsx',....]

Однако я могу напрямую получить доступ к отдельным файлам (но они обновляются и изменяются, поэтому непрактичны для жесткого codeирования) в этой папке через:

Я получаю ожидаемый результат чтения файла и его доступности в python.

Кто-нибудь знает, почему при выполнении полного рабочего codeа sharepoint не возникает ошибок и как мне получить список файлов в моей папке?

Большое спасибо за помощь!

from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.runtime.auth.user_credential import UserCredential
from office365.sharepoint.files.file import File 
import io

user = 'user'
pw = 'pw'

url = 'https://company-my.sharepoint.com'
rel_url = '/personal/name_company/Documents/further/path/to/folder/'

ctx_auth = AuthenticationContext(url)
if ctx_auth.acquire_token_for_user(user, pw):
  ctx = ClientContext(url, ctx_auth)
  web = ctx.web
  ctx.load(web)
  ctx.execute_query()
  print('Authenticated into sharepoint as: ',web.properties['Title'])

else:
  print(ctx_auth.get_last_error())

  
folder = ctx.web.get_folder_by_server_relative_url(folder_url)
fold_names = []
sub_folders = folder.files #Replace files with folders for getting list of folders
ctx.load(sub_folders)
ctx.execute_query()
     
for s_folder in sub_folders:            
   fold_names.append(s_folder.properties["Name"])

print(fold_names)
root_folder = ctx.web.default_document_library().root_folder
ctx.load(root_folder,['Files'])
ctx.execute_query()
for f in root_folder.files:
    print(f.name)
url = 'https://company-my.sharepoint.com/personal/name_company/Documents/further/path/to/folder/file.xlsx'

ctx_auth = AuthenticationContext(url)
if ctx_auth.acquire_token_for_user(user, pw):
    ctx = ClientContext(url, ctx_auth)
    web = ctx.web
    ctx.load(web)
    ctx.execute_query()
    print("Authentication successful")
else:
    print(ctx_auth.get_last_error())

resp = File.open_binary(ctx,url)
bytes_file_obj = io.BytesIO()
bytes_file_obj.write(resp.content)
bytes_file_obj.seek(0) #set file object to start

df = pd.read_excel(bytes_file_obj,engine='openpyxl',header=0)
print(df)
Алевтина
Вопрос задан23 апреля 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.