Skip to content

Commit d1fe951

Browse files
authored
Update drive.py
Add a function open_path to class Folder that allows to specify a direct path to navigate to. Folders that do not exist will be created directly.
1 parent 3fb5fb2 commit d1fe951

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

O365/drive.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,41 @@ def search(self, search_text, limit=None, *, query=None, order_by=None,
12181218
next_link=next_link, limit=limit)
12191219
else:
12201220
return items
1221+
1222+
def open_path(self, site_path):
1223+
""" open a folderpath, create folder if not exists
1224+
1225+
:param str site_path: desired path to be opened/created
1226+
:return: opened last folder
1227+
:rtype: drive.Folder
1228+
"""
1229+
1230+
lpath = site_path.split('/')
1231+
number = 0
1232+
modul = self.get_items
1233+
1234+
try:
1235+
next(self.get_items())
1236+
except StopIteration:
1237+
self.create_child_folder(lpath[number])
1238+
1239+
while number < len(lpath):
1240+
counter = 1
1241+
for item in modul():
1242+
if (counter == item.get_parent().child_count) and (item.name != lpath[number]):
1243+
item.get_parent().create_child_folder(lpath[number])
1244+
modul = self.get_items
1245+
number = 1
1246+
break
1247+
elif (item.name == lpath[number]) and (item.is_folder == True):
1248+
number = number + 1
1249+
if (item.child_count == 0) and number < len(lpath):
1250+
item.create_child_folder(lpath[number])
1251+
modul = item.get_items
1252+
break
1253+
else:
1254+
counter = counter + 1
1255+
return item
12211256

12221257
def upload_file(self, item, item_name=None, chunk_size=DEFAULT_UPLOAD_CHUNK_SIZE,
12231258
upload_in_chunks=False, stream=None, stream_size=None,

0 commit comments

Comments
 (0)