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 相关文章推荐
python文件操作相关知识点总结整理
Feb 22 Python
Python中操作符重载用法分析
Apr 29 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
python监控进程脚本
Apr 12 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
pytorch使用Variable实现线性回归
May 21 Python
python安装pil库方法及代码
Jun 25 Python
详解Django配置优化方法
Nov 18 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
python使用配置文件过程详解
Dec 28 Python
如何提高python 中for循环的效率
Apr 15 Python
python中pop()函数的语法与实例
Dec 01 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实现文件下载详解
2014/11/27 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
新大陆软件面试题
2016/11/24 面试题
工作人员思想汇报
2014/01/09 职场文书
学徒工职责
2014/03/06 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
大学生英语演讲稿
2014/04/24 职场文书
开服装店计划书
2014/08/15 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
小程序实现文字循环滚动动画
2021/06/14 Javascript