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中if语句的嵌套用法
May 14 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
Python 专题三 字符串的基础知识
Mar 19 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
Flask框架配置与调试操作示例
Jul 23 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
Python Selenium参数配置方法解析
Jan 19 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
python des,aes,rsa加解密的实现
Jan 16 Python
用Python将GIF动图分解成多张静态图片
Jun 11 Python
Python各协议下socket黏包问题原理
Apr 12 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
python对url格式解析的方法
2015/05/13 Python
Python实现的RSS阅读器实例
2015/07/25 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
党员群众路线承诺书
2014/05/20 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
小学班主任评语
2014/12/29 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书