如何用Python打开并重新保存目录下的所有文件
云端文件防删除:批量重保存CSV/PY/IPYNB文件方案
你的需求核心是通过更新文件修改时间避免被自动删除,无需修改内容,只需打开后原样保存即可。针对不同文件类型,处理方式如下:
处理CSV与PY文件
这类文本文件可直接读取内容后覆盖写入原文件,操作简单且安全:
import glob # 遍历目标目录下的CSV和PY文件 for fname in glob.glob('data_folder/*'): if fname.endswith(('.csv', '.py')): # 读取文件内容 with open(fname, 'r', encoding='utf-8') as f: content = f.read() # 原样写入覆盖原文件,更新修改时间 with open(fname, 'w', encoding='utf-8') as f: f.write(content)
处理IPYNB文件
Jupyter Notebook是JSON格式文件,用专业库处理更稳妥,避免格式损坏:
import glob import nbformat # 遍历目录下的IPYNB文件 for fname in glob.glob('data_folder/*.ipynb'): # 读取Notebook内容 nb = nbformat.read(fname, as_version=4) # 原样保存,更新修改时间 nbformat.write(nb, fname)
如果缺少nbformat库,先执行安装命令:pip install nbformat
合并处理三类文件的完整代码
import glob import nbformat def refresh_file(fname): if fname.endswith(('.csv', '.py')): with open(fname, 'r', encoding='utf-8') as f: content = f.read() with open(fname, 'w', encoding='utf-8') as f: f.write(content) elif fname.endswith('.ipynb'): nb = nbformat.read(fname, as_version=4) nbformat.write(nb, fname) # 遍历所有目标格式文件 for fname in glob.glob('data_folder/*'): if fname.endswith(('.csv', '.py', '.ipynb')): refresh_file(fname)
注意事项
- 建议先在少量测试文件上验证,确保不会损坏原有内容
- 可设置定时任务(如用
schedule库)自动执行,避免手动操作
内容的提问来源于stack exchange,提问作者Vardaan Khanted
相关产品推荐
相关产品推荐

