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编写类UNIX系统的命令行工具的教程
Apr 15 Python
理解Python中的With语句
Mar 18 Python
Python实现的rsa加密算法详解
Jan 24 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
代码分析Python地图坐标转换
Feb 08 Python
对Python w和w+权限的区别详解
Jan 23 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
详解Python的三种可变参数
May 08 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 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站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
js转换对象为xml
2017/02/17 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
python 常见字符串与函数的用法详解
2018/11/23 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python画双y轴图像的示例代码
2019/07/07 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
python爬虫基础之urllib的使用
2020/12/31 Python
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
环保建议书400字
2014/05/14 职场文书
小学节能减排倡议书
2014/05/15 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL