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 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
python编程开发之textwrap文本样式处理技巧
Nov 13 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Python线性方程组求解运算示例
Jan 17 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
如何使用Python发送HTML格式的邮件
Feb 11 Python
Django分组聚合查询实例分享
Apr 29 Python
python实现自动清理文件夹旧文件
May 10 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
html读出文本文件内容
2007/01/22 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
详解python之简单主机批量管理工具
2017/01/27 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
python使用Matplotlib画饼图
2018/09/25 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
采购部岗位职责
2013/11/24 职场文书
年度考核自我鉴定
2014/02/02 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
Python简易开发之制作计算器
2022/04/28 Python