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 相关文章推荐
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
Jul 04 Python
详细解读Python中的__init__()方法
May 02 Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
基于python实现聊天室程序
Jul 27 Python
详解python tkinter教程-事件绑定
Mar 28 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
python实现发送form-data数据的方法详解
Sep 27 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
Python requests模块session代码实例
Apr 14 Python
Python实现手势识别
Oct 21 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
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
Javascript读写cookie的实例源码
2019/03/16 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
CSS3实现swap交换动画
2016/01/19 HTML / CSS
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
英文自荐信
2013/12/19 职场文书
鉴定评语大全
2014/05/05 职场文书
公共场所标语
2014/06/30 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
工会工作个人总结
2015/03/03 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript