Office365-rest-python-client: folder.files 좜λ ₯ μ—†μŒ/였λ₯˜ μ—†μŒ

에 λ§Œλ“  2019λ…„ 03μ›” 13일  Β·  12μ½”λ©˜νŠΈ  Β·  좜처: vgrem/Office365-REST-Python-Client

μ•ˆλ…•ν•˜μ„Έμš”,

λ‚΄ λͺ©ν‘œλŠ” μ…°μ–΄ν¬μΈνŠΈ μ‚¬μ΄νŠΈ λ¬Έμ„œ 라이브러리/λͺ©λ‘μ˜ λ‚΄μš©μ„ μΈμ‡„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
좜λ ₯이 μ—†κ±°λ‚˜ 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ” 이유λ₯Ό μ•Œμ•„ λ‚΄λ €κ³  λ…Έλ ₯ μ€‘μž…λ‹ˆλ‹€.

λ‚΄ URL https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx
은 2개의 폴더와 1개의 파일이 ν¬ν•¨λœ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚€μ§€λ§Œ 이 슀크립트λ₯Ό μ‹€ν–‰ν•˜μ—¬ λ³Ό 수 μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.
list_objectλ₯Ό "곡유 λ¬Έμ„œ"μ—μ„œ λŒ€μ²΄ 제λͺ©μœΌλ‘œ 변경해도 차이가 μ—†μŠ΅λ‹ˆλ‹€.

여기에 λΆ„λͺ…ν•œ 것을 λ†“μΉ˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? 도움을 μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.

마λ₯΄μ…€

office365.runtime.auth.authentication_contextμ—μ„œ 인증 μ»¨ν…μŠ€νŠΈ κ°€μ Έμ˜€κΈ°
office365.sharepoint.client_contextμ—μ„œ ClientContext κ°€μ Έμ˜€κΈ°

μ•± μ„€μ • = {
'URL': ' https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx ',
'ν΄λΌμ΄μ–ΈνŠΈ ID': 'f638a093-aa8f-48c7-a4e6-998d7d1ee388',
'client_secret': 'xysjblahblah',
}

__name__ == '__main__'인 경우:
context_auth = AuthenticationContext(url=app_settings['url'])
context_auth.acquire_token_for_app(client_id=app_settings['client_id'], client_secret=app_settings['client_secret'])인 경우:

    ctx = ClientContext(app_settings['url'], context_auth)

    list_object = ctx.web.lists.get_by_title("Shared Documents")
#list_object = ctx.web.lists.get_by_title("Documents")
#list_object = ctx.web.lists.get_by_title("FRAReporting")

    folder = list_object.root_folder        
    ctx.load(folder)
    ctx.execute_query()

    files = folder.files
    ctx.load(files)
    ctx.execute_query()

    for myfile in files:
        print("File name: {0}".format(myfile.properties["Name"]))

λͺ¨λ“  12 λŒ“κΈ€

Office365-REST-Python-Client(2.1.1) 및 python 3.6.4λ₯Ό μ‚¬μš©ν•˜λŠ” btw

인사말!

λΆˆν–‰νžˆλ„ 제곡된 μ˜ˆμ œμ—μ„œ 문제λ₯Ό λ°œκ²¬ν•  수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  것이 μ’‹μ•„ λ³΄μž…λ‹ˆλ‹€.

μ•„λž˜ μ„€λͺ…μ—μ„œ:
_2개의 폴더와 1개의 νŒŒμΌμ„ ν¬ν•¨ν•˜λŠ” λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€_

파일이 루트 폴더 μ•„λž˜μ— μ €μž₯λ˜μ§€ μ•Šκ³  λŒ€μ‹  ν•˜μœ„ 폴더에 μ €μž₯될 수 μžˆμŠ΅λ‹ˆκΉŒ?

μ–΄μ¨Œλ“ , ν•­λͺ©μ΄ λ°˜ν’ˆλ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ 이 방법을 μ‹œλ„ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

list_obj = context.web.lists.get_by_title(list_title)
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"]))

image

μ•ˆλ…•ν•˜μ„Έμš”,
μ½”λ“œλ₯Ό μ‹€ν–‰ν•  λ•Œ λ‹€μŒμ„ μ–»μŠ΅λ‹ˆλ‹€.

PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.py
역좔적(κ°€μž₯ 졜근 호좜 λ§ˆμ§€λ§‰):
파일 ".sharePoint_office365_test4.py", 36ν–‰,
ctx.execute_query()
파일 "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_runtime_context.py", 36ν–‰, execute_query
self.pending_request.execute_query()
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py" 파일, 32ν–‰, execute_query
self.execute_pending_queries() λ°˜ν™˜
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py" 파일, 38ν–‰, execute_pending_queries
응닡 = self.execute_request_direct(μš”μ²­)
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py" 파일, 109ν–‰, execute_request_direct
self.context.ensure_form_digest(μš”μ²­_μ˜΅μ…˜)
파일 "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py", 27ν–‰,sure_form_digest
self.request_form_digest()
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py" 파일, 39ν–‰, request_form_digest
νŽ˜μ΄λ‘œλ“œ = 응닡.json()
파일 "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesrequestsmodels.py", 897ν–‰, json
λ°˜ν™˜ complexjson.loads(self.text, **kwargs)
파일 "C:UsersfooAppDataLocalProgramsPythonPython36libjson__init__.py", 354ν–‰, λ‘œλ“œ 쀑
λ°˜ν™˜ _default_decoder.decode(λ“€)
파일 "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", 339ν–‰, λ””μ½”λ”©
obj, 끝 = self.raw_decode(s, idx=_w(s, 0).end())
파일 "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", 362ν–‰, raw_decode
μ—†μŒμ—μ„œ JSONDecodeError("μ˜ˆμƒ κ°’", s, err.value) λ°œμƒ
json.decoder.JSONDecodeError: μ˜ˆμƒ κ°’: ν–‰ 2 μ—΄ 1(문자 2)
PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint>

raw_decode μ˜ˆμ™Έμ—μ„œ λ¬Έμžμ—΄μ„ 좜λ ₯ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 첨뢀 νŒŒμΌμ„ μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

μ‹œκ°„ λ‚΄ μ£Όμ…”μ„œ λŒ€λ‹¨νžˆ κ°μ‚¬ν•©λ‹ˆλ‹€.
마λ₯΄μ…€

두 번째둜 κ²€ν† ν•˜λŠ” λ™μ•ˆ(그리고 제곡된 μŠ€ν¬λ¦°μƒ·μ„ 보고 κ°μ‚¬ν•©λ‹ˆλ‹€!) 제곡된 URL이 μœ νš¨ν•˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

app_settings = {
'url': 'https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx',
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         needs to be site url  

}

제곡된 URL은 _라이브러리 보기 νŽ˜μ΄μ§€μ˜ μ ˆλŒ€ URL_에 ν•΄λ‹Ή ν•˜μ§€λ§Œ μ‹€μ œλ‘œ ClientContext μ˜ˆμƒλ˜λŠ” 것은 siteUrl μ΄λ―€λ‘œ λ‹€μŒ λŒ€μ‹ :

https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx

μ‹œλ„ν•˜μ‹­μ‹œμ˜€:

https://my.jci.com/sites/FRAReporting/

당신이 μ ˆλŒ€μ μœΌλ‘œ μ˜³μ•˜μŠ΅λ‹ˆλ‹€.
당신은 λ‚΄ ν•˜λ£¨λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. μΆ©λΆ„νžˆ 감사할 수 μ—†μŠ΅λ‹ˆλ‹€.
λ―Έλ””μ—„.

이제 슀크립트λ₯Ό μ‹€ν–‰ν•˜λ©΄ 15ν–‰μ²˜λŸΌ 좜λ ₯λ©λ‹ˆλ‹€.

C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ
파일 이름: μ—†μŒ

λ‚΄ (λ‚˜λŠ” 당신을 μ˜λ―Έν•©λ‹ˆλ‹€ :) μ›λž˜ 슀크립트λ₯Ό μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ μ˜ˆμƒ κ²°κ³Όλ₯Ό μ–»μŠ΅λ‹ˆλ‹€.
파일 이름: Document.docx
파일 이름: access_denied.txt

λ‚΄ μΏΌλ¦¬λŠ” 예λ₯Ό λ“€μ–΄ SS μœ„μ˜ "TEST" 폴더 μ•„λž˜μ— μžˆλŠ” λͺ¨λ“  νŒŒμΌμ„ λ‚˜μ—΄ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 그것이 λ°”λ‘œ μ œκ°€ μ„±μ·¨ν•˜λ €κ³  ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

λ‚΄ μ •ν™•ν•œ λ¬Έμ œμ— λŒ€ν•΄ μžμ„Ένžˆ μ„€λͺ…ν•  수 μžˆλŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. λ£¨νŠΈμ—μ„œ νŒŒμΌμ„ μ„±κ³΅μ μœΌλ‘œ μΈμ‡„ν•˜λŠ” κ²ƒμ²˜λŸΌ(λ˜λŠ” 그것이 무엇이든, λ¬Έμ„œ):

파일 이름: Document.docx
파일 이름: access_denied.txt

λ‚˜λ„ ν•  수 μžˆλ‹€. κ·ΈλŸ¬λ‚˜ 였히렀 폴더에 μžˆλŠ” 파일 λͺ©λ‘μ„ μ–»κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰