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的Django框架中从url中捕捉文本的方法
Jul 20 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 Python
python实现分页效果
Oct 25 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
python3判断url链接是否为404的方法
Aug 10 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
解决Python对齐文本字符串问题
Aug 28 Python
python实现人机猜拳小游戏
Feb 03 Python
Python3 用什么IDE开发工具比较好
Nov 28 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python如何读写csv数据
2018/03/21 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
如何打开WebSphere远程debug
2014/10/10 面试题
新员工入职感言
2014/02/01 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
学困生转化工作总结
2015/08/13 职场文书
导游词之镇江焦山
2019/11/21 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
python中的random模块和相关函数详解
2022/04/22 Python