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删除列表内容
Aug 04 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
对python3标准库httpclient的使用详解
Dec 18 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
python树莓派红外反射传感器
Jan 21 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
python 装饰器功能与用法案例详解
Mar 06 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
Python基础之Socket通信原理
Apr 22 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
python开启debug模式的方法
2019/06/27 Python
深入理解Python 多线程
2020/06/16 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
彻底解决Python包下载慢问题
2020/11/15 Python
英国探险旅游专家:Explore
2018/12/20 全球购物
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
财务部经理岗位职责
2014/02/03 职场文书
情侣吵架检讨书
2014/02/05 职场文书
临床医师个人自我评价
2014/04/06 职场文书
学校安全防火方案
2014/06/07 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫