Как читать имена файлов из заданной папки на sharepoint - PullRequest
0 голосов
/ 28 июня 2019

Я пишу инструмент на python 2.7, который может автоматизировать мой ETL, который будет читать файлы в sharepoint в цикле и конвертировать в фрейм данных.Мой ETL завершен, но я не могу прочитать имена файлов из папки на sharepoint, которая может кормить мой ETL.Любая помощь приветствуется.Заранее спасибо

Я проверил член класса context.web и вижу get_folder_by_server_relative_url

import os

from office365.sharepoint.caml_query import CamlQuery
from office365.runtime.auth.authentication_context import 
AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File
from office365.sharepoint.file_creation_information import 
FileCreationInformation
import inspect


url= "https://XXX.sharepoint.com/sites/XXX/"
username = "blah@xxx.com.au"
password = "blah123!"

ctx_auth = AuthenticationContext(url=url)
if ctx_auth.acquire_token_for_user(username=username,password=password):
 context = ClientContext(url, ctx_auth)
 print(inspect.getmembers(context.web))

 lists = context.web.get_folder_by_server_relative_url('Shared Documents/ELZ/')
 items = lists.Folders
 context.Load(items)
 context.ExecuteQuery()


 folder = GetListItemFolder(item)
 for item in items:
   print "File name: {0}".format(item.properties["Name"])

AttributeError: у объекта 'FolderCollection' нет атрибута 'get_folder_by_server_relative_url'

Ответы [ 3 ]

0 голосов
/ 30 июня 2019

Я наконец-то понял, ниже приведен правильный код.

ctx_auth = AuthenticationContext(url=url)  
if ctx_auth.acquire_token_for_user(username=username,password=password):
     context = ClientContext(url, ctx_auth)  
     folder_obj = context.web.get_folder_by_server_relative_url('Shared 
     Documents/ELZ/')  
     files = folder_obj.files.order_by('TimeLastModified')    
     context.load(files)  
     context.execute_query()   
     for file in files:  
         print "File name: {0}".format(file.properties['Name'])
0 голосов
/ 18 июля 2019

Следуйте нижеприведенному URL, это будет полезно для вас https://www.mydatahack.com/how-to-get-data-from-sharepoint-with-python/

0 голосов
/ 28 июня 2019

Проверьте этот пример read_folder_and_files_alt

lists = context.web.lists.get_by_title('Documents')
qry = CamlQuery.create_all_items_query()
items = list_obj.get_items(qry)
context.load(items)
context.execute_query()
for cur_item in items:
        print("File name: {0}".format(cur_item.properties["Title"]))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...