Meta广告库API脚本遇PermissionError[Errno13]权限拒绝求解决
问题描述
执行以下命令:
C:\Ad-Library-API-Script-Repository-main\python> py fb_ads_library_api_cli.py -t (token) -f "id,page_id,page_name,ad_creative_bodies,spend,demographic_distribution,bylines,ad_delivery_start_time" -c "CA" -s "climate" --after-date "2024-05-01" save_to_csv file.csv
出现权限错误:
Traceback (most recent call last): File "C:\Ad-Library-API-Script-Repository-main\python\fb_ads_library_api_cli.py", line 147, in main() File "C:\Ad-Library-API-Script-Repository-main\python\fb_ads_library_api_cli.py", line 134, in main save_to_csv( File "C:\Ad-Library-API-Script-Repository-main\python\fb_ads_library_api_operators.py", line 96, in save_to_csv with open(output_file, "w") as csvfile: ^^^^^^^^^^^^^^^^^^^^^^ PermissionError: [Errno 13] Permission denied.
曾尝试在fb_ads_library_api_operators.py中添加encoding="utf-8",仅成功获取一次数据,后续重复报错,对Graph API权限机制存在困惑。
解决方案
- 明确:这个错误是本地文件系统权限问题,和Facebook Graph API权限无关,无需纠结Graph API权限机制。
- 指定有写入权限的输出路径:不要直接使用
file.csv,换成明确的、当前用户有权限写入的路径,比如桌面路径:save_to_csv C:\Users\你的用户名\Desktop\file.csv - 以管理员身份运行终端:右键终端程序,选择「以管理员身份运行」,再执行原命令。
- 检查输出文件是否被占用:如果
file.csv被Excel、WPS等程序打开,会导致文件锁定无法写入,关闭相关程序后重试。 - 优化代码中的文件写入逻辑(可选):修改
fb_ads_library_api_operators.py的save_to_csv函数,添加编码处理的同时,可增加文件存在时的覆盖确认或自动重命名逻辑,示例:def save_to_csv(data, output_file): import os # 若文件已存在,自动添加后缀避免覆盖 if os.path.exists(output_file): name, ext = os.path.splitext(output_file) output_file = f"{name}_new{ext}" # 写入时指定编码 with open(output_file, "w", encoding="utf-8", newline="") as csvfile: # 原代码的CSV写入逻辑保持不变
内容的提问来源于stack exchange,提问作者noradioactive
相关产品推荐
相关产品推荐

