如何用Python读取在线电子表格并批量生成指定文件夹结构?
整合在线Google Sheets读取与文件夹结构生成方案
可行性说明
完全可行,只需将在线读取到的表格数据直接对接文件夹生成逻辑,即可实现一次性完成在线表格读取与文件夹结构更新的需求,后续更新代码(或表格数据)后重新执行脚本即可同步更新。
整合后的完整代码
import pandas as pd import os # 配置参数,请替换成你的实际值 SHEET_ID = "example6565465dchdckjdISHEETID" ROOT_FOLDER = r'C:\your\root\folder\path' # 示例Windows路径,Linux/macOS可写成'/your/root/folder/path' # 读取在线Google Sheets表格(需确保表格已设置为"任何人可查看"权限) def read_online_spreadsheet(sheet_id): csv_export_url = f"https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv" return pd.read_csv(csv_export_url) # 根据表格数据生成/更新文件夹结构 def build_folder_structure(dataframe, root_dir): # 遍历表格中的每一行数据 for _, row in dataframe.iterrows(): set_name = row['Set_Name'] asset_name = row['Asset_Name'] # 构建资产根目录路径 asset_root_path = os.path.join(root_dir, set_name, "assets", asset_name) # 定义每个资产下需要创建的固定子文件夹 required_subfolders = ['wip', 'exports'] # 创建资产根目录(exist_ok=True避免已存在文件夹时抛出错误) os.makedirs(asset_root_path, exist_ok=True) # 遍历创建固定子文件夹 for subfolder in required_subfolders: subfolder_path = os.path.join(asset_root_path, subfolder) os.makedirs(subfolder_path, exist_ok=True) if __name__ == "__main__": # 执行流程:读取在线表格 → 生成文件夹结构 sheet_data = read_online_spreadsheet(SHEET_ID) build_folder_structure(sheet_data, ROOT_FOLDER) print("文件夹结构已成功生成/同步更新")
关键优化点说明
- 用
os.path.join替代字符串拼接路径,自动适配不同操作系统的路径分隔符(Windows用\,Linux/macOS用/),避免路径错误。 - 添加
exist_ok=True参数,确保脚本重复执行时,不会因文件夹已存在而报错,实现增量更新的效果。 - 将功能拆分为独立函数,代码结构更清晰,便于后续维护和扩展。
- 直接使用pandas的
iterrows()遍历表格行,无需额外转换格式,简化逻辑。
其他可选实现思路
- 使用Google Sheets API读取:如果你的表格是私有或需要更稳定的读取方式,可以使用Google官方的
google-api-python-client库直接调用API读取数据,避免依赖CSV导出链接的权限问题。 - 定时自动同步:借助
schedule或APScheduler库,设置定时任务(比如每天执行一次),实现无需手动运行脚本即可自动同步表格数据与文件夹结构。 - 添加日志记录:在脚本中加入日志模块(如
logging),记录每次执行的情况、创建的文件夹路径或错误信息,便于排查问题。
内容的提问来源于stack exchange,提问作者SisodiaMonu
相关产品推荐
相关产品推荐

