web-dev-qa-db-ja.com

pythonスクリプトを使用して、SharePointサイトにファイルをアップロードする方法

pythonスクリプトを使用してSharePointサイトにファイルをアップロードする方法はありますか?haufe.sharepointをインストールしようとしましたが、インストール中にntlmをフェッチできなかったようで、インストールできません。 ntlmをインストールせずにコネクタモジュールを使用することもできます。

また、openpyxlを使用してExcelファイルをサーバーの場所に保存しようとしました(URL経由で接続するのではなく、\ server\sharepointsite\filesのようなディレクトリに保存します)が、ファイルがチェックアウトされた後もファイルがチェックアウトされたままになっているようです保存しました。

助けていただければ幸いです。ありがとう!

12
user3590460

haufe.sharepointSharePointリストでのみ機能しますが、おそらくドキュメントライブラリにアクセスする必要があります。

Sharepointの REST API を使用して、Python Requests を使用する必要があります。

SharePointサイトがBasicAuthをサポートしていない場合は、requests_ntlmパッケージをお勧めします。

他の理由でうまくいきませんでしたが、少しは役に立ったかもしれません。

5
Calanas

私はこの質問に答えるのに少し遅れるかもしれないと思います。

次の解決策は私のために働いた-

Sharepoint Webページで、[ライブラリツール] >> [ライブラリ] >> [エクスプローラーコマンドで開く]に移動します([Officeに接続]コマンドの横の右下にある小さなアイコンです。

アドレスバーには、ファイルをアップロードする必要のあるアドレスが表示されます。 アドレスから「http:」または「https:」を削除することを忘れないでくださいこのアドレスはファイルをアップロードする宛先です。

その後、shutilパッケージを使用してファイルをアップロードできます。

import shutil as sl
sl.copy(source,destination)

これは、Sharepointにファイルをアップロードするのに役立ちます

免責事項-これはPython 3.6で非常にうまく機能します

1
Mohanty.pyt

上記の答えは私にはうまくいきませんでした。ドライブをSharePointフォルダーにマッピングし、そのドライブへのコピーを使用するだけで、簡単で便利な方法を見つけました。

import subprocess
import shutil
subprocess.call(r'Net Use Y: http://sharepoint/link/to/your/folder', Shell=True)
shutil.copy("link_to_local_file","Y:\\")

コピーする代わりに、ファイルを削除したり、通常のフォルダのようなことをしたりすることもできます。

0
Mikus

SharePointサイトのpythonで、RESTAPI呼び出しを介してファイルを作成しました。以下のコードを見つけてください。

def CreateHomePage():
    server_relative_url = base_url+ '/_api/web/webinfos'

r1 = requests.get(server_relative_url, auth=HttpNtlmAuth(username, password), headers = headers, verify=True)

value = json.loads(r1.text)
for row in value['d']['results']:
    if(row['Title'] == myvars['Site Name'].strip(' \t\n\r')):
        Id= row['ServerRelativeUrl']

#Add Template and create file simultaneously
title = myvars['Site Name'].strip(' \t\n\r')  
post_url = root_url  +'GetFolderByServerRelativeUrl(\'/'+Id+'/Pages\')/Files/add(url=\'Home.aspx\',overwrite=true)'
r2 = requests.post(post_url, auth=HttpNtlmAuth(username, password), headers = headers, verify=True)

logger.debug("Creation of home page %d", r2.status_code)
0
Ragini Sharma