Загрузка файла на сайт SharePoint с помощью Python
Вам интересно, как загружать файлы в SharePoint с помощью скрипта Python?
«SharePoint» может быть использован для создания сайтов, предоставляющих пользователям возможность для совместной работы. Создаваемые на платформе «SharePoint» сайты могут быть использованы в качестве хранилища информации, знаний и документов, а также использоваться для исполнения облегчающих взаимодействие веб-приложений, таких как вики и блоги. Пользователи могут управлять и взаимодействовать с информацией в списках и библиотеках документов, используя элементы управления, называемые веб-части (SharePoint WebParts).
В этой статье вы узнаете, как Python может помочь вам сэкономить время и силы. Вы сможете распрощаться с ручной загрузкой файлов, что даст вам продуктивность 😊.
Если хочется больше контента не только по SQL, но и по ML, Data Science, Python — добро пожаловать в тг
А вот тут отдельно разбор заданий с DS
Давайте начнем!
Шаг 1. Установите Office365-Rest-Python-Client
pip install Office365-REST-Python-Client
*pip или pip3 в зависимости от вашей системы
Шаг 2. Импорт необходимых библиотек
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
Шаг 3. Аутентификация
3.1 Создание объекта контекста клиента
Проще говоря, клиентский контекст – это объект, содержащий информацию об объектах SharePoint (сайтах, списках и элементах) и методах (создание, чтение, обновление, удаление). Он нужен нам, чтобы мы могли получать файлы и отправлять обновления обратно. В этой статье мы создадим объект контекста, используя идентификатор клиента и его секрет.
site_url = 'https://{your-tenant-prefix}/sites/{your-folder-of-interest}'
app_principal = {
'client_id': '{client_id}',
'client_secret': '{client_secret}',
}
context_auth = AuthenticationContext(url=site_url)
context_auth.acquire_token_for_app(client_id=app_principal['client_id'],
client_secret=app_principal['client_secret'])
ctx = ClientContext(site_url, context_auth)
3.2 Получение заголовка веб-сайта SharePoint для проверки того, работает ли объект контекста клиента так, как ожидалось.
web=ctx.web
# We want to retrieve the web's title
ctx.load(web)
# Execute the query to server.
ctx.execute_query()
print("Web site title: {0}".format(web.properties['Title']))
*Ваш объект клиентского контекста готов к загрузке файла
Шаг 4. Загрузка файла на сайт SharePoint
4.1 Импорт модуля os
Модуль OS предоставляет функции для взаимодействия с операционной системой
localpath = "{local path of the file you want to upload to SharePoint Site}/file_to_transfer.txt"
remotepath = "/sites/{path_to_folder_of_your_interest}/"+"name_you_want_to_give_to_uploaded_file.xlsx"
*убедитесь, что вы следуете этому синтаксису для удаленного пути, иначе код не будет работать
4.2 Откройте и прочитайте содержимое локального файла в двоичном формате (“rb”) и сохраните его в переменной
with open(localpath,"rb") as content_file:
file_content = content_file.read()
4.3 Загрузите содержимое файла_содержимого из предыдущего шага на сайт SharePoint
dir, name = os.path.split(remotepath)
# this will Split the remotepath into a pair , dir = path till before file name and name = file name
4.4 Загрузите файл на сайт SharePoint
file = ctx.web.get_folder_by_server_relative_url(dir).upload_file(name, file_content).execute_query()
Вуаля! Ваш файл загружен!
Продолжайте учиться!!!!!