Мы создали код Python для запроса базы данных и переноса данных в файл CSV. Мой вопрос: как и как лучше всего автоматизировать отправку в Sharepoint? Я новичок в этой области и хотел сделать что-нибудь классное по автоматизации; Инструментов, использованных в коде, достаточно для этого? Что-то не так с этим подходом?
import pandas as pd
import os
from datetime import datetime, timedelta
from Executers.select import Selects
from office365.runtime.auth.client_credential import ClientCredential
from office365.sharepoint.client_context import ClientContext
def upload_to_sharepoint(file_path, sharepoint_url, sharepoint_folder, client_id, client_secret):
# SharePoint authentication
credentials = ClientCredential(client_id, client_secret)
ctx = ClientContext(sharepoint_url).with_credentials(credentials)
# Path and file name
with open(file_path, 'rb') as file:
target_folder = ctx.web.get_folder_by_server_relative_url(sharepoint_folder)
target_file = target_folder.upload_file(os.path.basename(file_path), file)
ctx.execute_query()
print(f"File '{file_path}' successfully uploaded to SharePoint.")
def main():
# CSV file path
output_path = 'path/to/save/csv'
os.makedirs(output_path, exist_ok=True)
csv_file = os.path.join(output_path, 'annual_result.csv')
# Parameters for SQL query (last 24 hours)
yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# SQL query for the last 24 hours 24 hours
selects = Selects()
script = f""" SELECT ................... (not allowed to display)
"""
# Execute the query and receive new data
df_new = selects.execute_query(script)
# Check if the CSV already exists to accumulate data
if os.path.exists(csv_file):
df_existing = pd.read_csv(csv_file)
df_updated = pd.concat([df_existing, df_new]).drop_duplicates().reset_index(drop=True)
else:
df_updated = df_new
# Save the updated DataFrame in the CSV
df_updated.to_csv(csv_file, index=False)
print(f"CSV updated and saved in {csv_file}")
# Parameters for connection and SharePoint folder
sharepoint_url = "https://suaconta.sharepoint.com/sites/seusite"
sharepoint_folder = "/sites/yoursite/Documentos%20Shared/your_folder"
client_id = "your_client_id"
client_secret = "your_client_secret"
# Upload to SharePoint
upload_to_sharepoint(csv_file, sharepoint_url, sharepoint_folder, client_id, client_secret)
if __name__ == "__main__":
main()
Подробнее здесь: https://stackoverflow.com/questions/792 ... sharepoint
Автоматизируйте отправку CSV-файла в Sharepoint ⇐ Python
Программы на Python
-
Anonymous
1732583949
Anonymous
Мы создали код Python для запроса базы данных и переноса данных в файл CSV. Мой вопрос: как и как лучше всего автоматизировать отправку в Sharepoint? Я новичок в этой области и хотел сделать что-нибудь классное по автоматизации; Инструментов, использованных в коде, достаточно для этого? Что-то не так с этим подходом?
import pandas as pd
import os
from datetime import datetime, timedelta
from Executers.select import Selects
from office365.runtime.auth.client_credential import ClientCredential
from office365.sharepoint.client_context import ClientContext
def upload_to_sharepoint(file_path, sharepoint_url, sharepoint_folder, client_id, client_secret):
# SharePoint authentication
credentials = ClientCredential(client_id, client_secret)
ctx = ClientContext(sharepoint_url).with_credentials(credentials)
# Path and file name
with open(file_path, 'rb') as file:
target_folder = ctx.web.get_folder_by_server_relative_url(sharepoint_folder)
target_file = target_folder.upload_file(os.path.basename(file_path), file)
ctx.execute_query()
print(f"File '{file_path}' successfully uploaded to SharePoint.")
def main():
# CSV file path
output_path = 'path/to/save/csv'
os.makedirs(output_path, exist_ok=True)
csv_file = os.path.join(output_path, 'annual_result.csv')
# Parameters for SQL query (last 24 hours)
yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# SQL query for the last 24 hours 24 hours
selects = Selects()
script = f""" SELECT ................... (not allowed to display)
"""
# Execute the query and receive new data
df_new = selects.execute_query(script)
# Check if the CSV already exists to accumulate data
if os.path.exists(csv_file):
df_existing = pd.read_csv(csv_file)
df_updated = pd.concat([df_existing, df_new]).drop_duplicates().reset_index(drop=True)
else:
df_updated = df_new
# Save the updated DataFrame in the CSV
df_updated.to_csv(csv_file, index=False)
print(f"CSV updated and saved in {csv_file}")
# Parameters for connection and SharePoint folder
sharepoint_url = "https://suaconta.sharepoint.com/sites/seusite"
sharepoint_folder = "/sites/yoursite/Documentos%20Shared/your_folder"
client_id = "your_client_id"
client_secret = "your_client_secret"
# Upload to SharePoint
upload_to_sharepoint(csv_file, sharepoint_url, sharepoint_folder, client_id, client_secret)
if __name__ == "__main__":
main()
Подробнее здесь: [url]https://stackoverflow.com/questions/79218592/automate-sending-csv-file-to-sharepoint[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия