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中的五种异常处理机制介绍
Sep 02 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
python中lambda()的用法
Nov 16 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python 文件转成16进制数组的实例
Jul 09 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
PyTorch中topk函数的用法详解
Jan 02 Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 Python
Python ATM功能实现代码实例
Mar 19 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
python进行二次方程式计算的实例讲解
Dec 06 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代码
2013/03/24 PHP
php生成shtml类用法实例
2014/12/09 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
JavaScript类库D
2010/10/24 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
python实现中文文本分句的例子
2019/07/15 Python
python3 字符串知识点学习笔记
2020/02/08 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
班级年度安全计划书
2014/05/01 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
情人节活动总结范文
2015/02/05 职场文书
Go中的条件语句Switch示例详解
2021/08/23 Golang