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实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 Python
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
深入理解Django的中间件middleware
Mar 14 Python
django manage.py扩展自定义命令方法
May 27 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
PyQt5实现简单的计算器
May 30 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 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
Apache设置虚拟WEB
2006/10/09 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python检测QQ在线状态的方法
2015/05/09 Python
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python装饰器原理与用法分析
2018/04/30 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
工业设计专业推荐信
2013/10/29 职场文书
家长评语大全
2014/01/22 职场文书
幼儿园教育教学反思
2014/01/31 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
5s推行计划书
2014/05/06 职场文书
文秘应届生求职信
2014/07/05 职场文书
合作协议书格式
2014/08/19 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技