Python3中如何指定Exavault下载CSV文件的存储目录?
自定义Exavault CSV文件保存目录的解决方案
方法一:下载后移动文件(无需修改SDK源码)
默认情况下,resources_api.download()方法会将文件保存到系统临时目录,你可以在下载完成后手动将文件移动到指定目录。修改你的脚本如下:
import os import shutil import sys # ... 你的原有初始化及文件列表查询代码 ... try: downloaded_file = resources_api.download(API_KEY, ACCESS_TOKEN, downloads, download_archive_name="sample-csvs") # 定义目标保存目录,可替换为你需要的路径 target_dir = os.path.expanduser("~/Desktop/Exavault_CSVs") # 自动创建目录(如果不存在) os.makedirs(target_dir, exist_ok=True) # 拼接目标文件的完整路径 target_path = os.path.join(target_dir, os.path.basename(downloaded_file)) # 移动临时文件到目标目录 shutil.move(downloaded_file, target_path) print("File(s) downloaded to", target_path) except Exception as e: print('Exception when downloading:', str(e)) sys.exit(1)
方法二:修改SDK的resources_api.py文件(自定义下载逻辑)
如果你想让download方法直接支持指定保存路径,可以修改SDK源码:
- 打开
resources_api.py,找到download方法,添加save_path参数并调整文件保存逻辑:
def download(self, api_key, access_token, resources, **kwargs): # ... 保留原有其他代码 ... # 找到处理临时文件保存的代码段,替换为以下逻辑 if temp_file: temp_file.close() # 判断是否传入自定义保存路径 save_path = kwargs.get('save_path') if save_path: # 创建目标目录(如果不存在) os.makedirs(save_path, exist_ok=True) target_file = os.path.join(save_path, os.path.basename(temp_file.name)) shutil.move(temp_file.name, target_file) return target_file else: return temp_file.name # ... 保留原有其他代码 ...
- 修改后,调用
download方法时直接传入save_path参数:
try: target_dir = os.path.expanduser("~/Documents/Exavault_Downloads") downloaded_file = resources_api.download(API_KEY, ACCESS_TOKEN, downloads, download_archive_name="sample-csvs", save_path=target_dir) print("File(s) downloaded to", downloaded_file) except Exception as e: print('Exception when downloading:', str(e)) sys.exit(1)
注意:修改SDK源码后,后续更新SDK会覆盖你的自定义改动,因此优先推荐使用方法一。
内容的提问来源于stack exchange,提问作者Steven Diffey
相关产品推荐
相关产品推荐

