使用Python我正在提取Google云端硬盘帐户的文件夹树,但我仍然坚持如何使用os.makedirs
以下函数当前正确输出树(我使用缩进来检查它)。这就是Google云端硬盘帐户的文件夹结构。
def tree_folder_contents(items_array, folder_id, indent):
for item in items_array:
if item['parents']:
for parent in item['parents']:
if folder_id == parent:
if item['mimeType'] == 'application/vnd.google-apps.folder':
print(' ' * indent + item['name'] + ' (indent: ' + str(indent) + ')')
tree_folder_contents(items_array, item['id'], indent+1)
树输出:
Folder_1 (indent: 0)
Folder_2 (indent: 0)
Folder_2_1 (indent: 1)
Folder_2_1_1 (indent: 2)
Folder_2_1_2 (indent: 2)
Folder_2_1_3 (indent: 2)
Folder_2_1_4 (indent: 2)
Folder_3 (indent: 0)
Folder_3_1 (indent: 1)
Folder_3_1_1 (indent: 2)
Folder_4 (indent: 0)
Folder_5 (indent: 0)
如何将os.makedirs
集成到tree_folder_contents
中以便在本地创建该文件夹结构?
答案 0 :(得分:0)
我添加了一个新参数folder_path
,我正在使用dest_path = folder_path + item['name']
行创建文件夹。
这是完整的代码:
def tree_folder_contents(items_array, folder_id, folder_path, indent):
for item in items_array:
if item['parents']:
for parent in item['parents']:
if folder_id == parent:
if item['mimeType'] == 'application/vnd.google-apps.folder':
dest_path = folder_path + item['name'].replace( '/', '_' ) + '/'
if not os.path.exists(dest_path):
os.makedirs(dest_path)
print(' ' * indent + item['name'] + ' (indent: ' + str(indent) + ')')
tree_folder_contents(items_array, item['id'], dest_path, indent+1)
首次运行tree_folder_contents
时,folder_path
是将在其中创建所有帐户文件夹的主目录。