Python如何避免文件同名产生覆盖


Posted in Python onJune 09, 2020

在一些不多的数据下载和生成的时候,我们倾向于直接保存为文件,当我们修改某些参数后再一次运行时,之前运行时生成的文件就被覆盖了。为了解决这个问题,这里提供几个解决方案。

1. 判断文件是否存在;

2. 判断是否带有”0)“这种数字带括号的格式;

3. 文件名添加”(0), (1), (2)….“之类的编号。

以下是代码:

import os
import re
 
 
def auto_save_file(path):
  directory, file_name = os.path.split(path)
  while os.path.isfile(path):
    pattern = '(\d+)\)\.'
    if re.search(pattern, file_name) is None:
      file_name = file_name.replace('.', '(0).')
    else:
      current_number = int(re.findall(pattern, file_name)[-1])
      new_number = current_number + 1
      file_name = file_name.replace(f'({current_number}).', f'({new_number}).')
    path = os.path.join(directory + os.sep + file_name)
  return path

如果使用如下创建文件的代码测试:

path = r'D:\test.txt'
for i in range(10):
  with open(auto_save_file(path), 'w') as f:
    f.write('This is a test!')

结果如下:

Python如何避免文件同名产生覆盖

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python性能优化技巧
Mar 09 Python
python 文件操作删除某行的实例
Sep 04 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
python获取代码运行时间的实例代码
Jun 11 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
python斐波那契数列的计算方法
Sep 27 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
python 字段拆分详解
Dec 17 Python
Python使用configparser库读取配置文件
Feb 22 Python
jupyter notebook 多行输出实例
Apr 09 Python
Django ORM filter() 的运用详解
May 14 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 #Python
Python嵌入C/C++进行开发详解
Jun 09 #Python
Keras load_model 导入错误的解决方式
Jun 09 #Python
如何用python处理excel表格
Jun 09 #Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 #Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 #Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 #Python
You might like
PHP出错界面
2006/10/09 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
php异常处理捕获错误整理
2019/09/23 PHP
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
js实现全选和全不选
2020/07/28 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
linux比较文件内容的命令是什么
2013/03/04 面试题
农行实习自我鉴定
2013/09/22 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
php引用传递
2021/04/01 PHP
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
深入理解python协程
2021/06/15 Python
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python