使用Python动态创建多个文件夹,如果Box中不存在的话。

问题描述 投票:0回答:1

谁能帮帮我,如何使用Python在一个文件夹(命名为Archive)内的盒子中创建多个具有年份格式的文件夹(如2018,2019等文件夹,如果它不存在)。

我有一段类似下面的代码,但是我无法动态地创建任何文件夹。

it = shared_folder.get_items()for i in it: if (i.name == 'Lithuansa'):

#print('{0} {1} is named "{2}"'.format(i.type.capitalize(), i.id, i.name))
python box-api box
1个回答
0
投票

这里有一些关于如何根据是否存在相同文件路径名的文件夹来动态创建文件夹的想法。我也有一些日期逻辑在里面,你可以调整。

from dateutil.relativedelta import relativedelta
import os

#Create date logic for folder
last_month = datetime.now() - relativedelta(months=1)
Prev_Month_Year = format(last_month, '%B %Y')[0:3] + "_" + format(last_month, '%B %Y')[-4:]

#Set the base folder. All other folders will be subfolders within this one.
K_Folder = 'C:/Reporting/K'

#Set a subfolder
K_Invoices_Folder = f'{K_Folder}/K_Invoices'

#Create a new folder if folder doesn't exist
if not os.path.exists(f'{K_Invoices_Folder}/{Prev_Month_Year}'):
    os.makedirs(f'{K_Invoices_Folder}/{Prev_Month_Year}')

0
投票

你可以使用Python SDK。

从你的根文件夹('0')开始,你可以使用这个API调用创建后续的子文件夹。

subfolder = client.folder('0').create_subfolder('Folder 1')

这个子文件夹会有一个ID,然后你可以用它来创建该文件夹中的子文件夹。

此外,你可能想在创建这个文件夹之前,运行一个检查,看看是否已经存在一个文件夹。您可以通过列出文件夹中的文件和文件夹来实现这一点。

items = client.folder(folder_id='22222').get_items()
for item in items:
    print('{0} {1} is named "{2}"'.format(item.type.capitalize(), item.id, item.name))
© www.soinside.com 2019 - 2024. All rights reserved.