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 相关文章推荐
pymongo给mongodb创建索引的简单实现方法
May 06 Python
python的else子句使用指南
Feb 27 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
Python类反射机制使用实例解析
Dec 30 Python
python中实现词云图的示例
Dec 19 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 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 date函数参数详解
2006/11/27 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
浅谈Node Inspector 代理实现
2017/10/19 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
Python正则表达式使用范例分享
2016/12/04 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
html5时钟实现代码
2010/10/22 HTML / CSS
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
Jar包的作用是什么
2014/03/30 面试题
毕业典礼演讲稿
2014/05/13 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
员工评语范文
2014/12/31 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
大学开学感言
2015/08/01 职场文书
python中mongodb包操作数据库
2022/04/19 Python