Python 创建新文件时避免覆盖已有的同名文件的解决方法


Posted in Python onNovember 16, 2018

思路:创建文件时,先检查是否有同名文件(使用os.path.isfile),如果有,则在文件名后加上编号n来创建。

关键点:

1. 使用os.path.isfile判断文件是否存在

2. 使用递归函数判断

2. 添加编号时, 使用可变list 传值n=[0]

完整代码如下:

import os

def check_filename_available(filename):
  n=[0]
  def check_meta(file_name):
    file_name_new=file_name
    if os.path.isfile(file_name):
      file_name_new=file_name[:file_name.rfind('.')]+'_'+str(n[0])+file_name[file_name.rfind('.'):]
      n[0]+=1
    if os.path.isfile(file_name_new):
      file_name_new=check_meta(file_name)
    return file_name_new
  return_name=check_meta(filename)
  return return_name
with open(check_filename_available('t.txt'),'w') as f:
  f.write('Checking func!')

以上这篇Python 创建新文件时避免覆盖已有的同名文件的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
如何在Django配置文件里配置session链接
Aug 06 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
详解基于python的全局与局部序列比对的实现(DNA)
Oct 07 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 #Python
在Pandas中给多层索引降级的方法
Nov 16 #Python
Python 面试中 8 个必考问题
Nov 16 #Python
python 使用值来排序一个字典的方法
Nov 16 #Python
pandas通过索引进行排序的示例
Nov 16 #Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 #Python
对Pandas MultiIndex(多重索引)详解
Nov 16 #Python
You might like
PHP开发的一些注意点总结
2010/10/12 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP文件与目录操作示例
2016/12/24 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
js截取函数(indexOf,join等)
2010/09/01 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
旅游市场营销方案
2014/03/09 职场文书
志愿者活动总结
2014/04/28 职场文书
领导班子整改措施
2014/10/24 职场文书
先进党支部申报材料
2014/12/24 职场文书
高考学习决心书
2015/02/04 职场文书
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python