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

yipeiwu_com7年前Python基础

思路:创建文件时,先检查是否有同名文件(使用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原类、类的创建过程与方法详解

今天为大家介绍一下python中与class 相关的知识…… 获取对象的类名 python是一门面向对象的语言,对于一切接对象的python来说,咱们有必要深入的学习与了解一...

python pandas时序处理相关功能详解

创建时间序列 函数pd.date_range() 根据指定的范围,生成时间序列DatetimeIndex,每隔元素的类型为Timestamp。该函数应用较多。 ts = pd....

Python解决走迷宫问题算法示例

本文实例讲述了Python解决走迷宫问题算法。分享给大家供大家参考,具体如下: 问题: 输入n * m 的二维数组 表示一个迷宫 数字0表示障碍 1表示能通行 移动到相邻单元格用1步 思...

使用python验证代理ip是否可用的实现方法

在使用爬虫爬取网络数据时,如果长时间对一个网站进行抓取时可能会遇到IP被封的情况,这种情况可以使用代理更换ip来突破服务器封IP的限制。 随手在百度上搜索免费代理IP,可以得到一系列的网...

python实现拓扑排序的基本教程

python实现拓扑排序的基本教程

拓扑排序 几乎在所有的项目,甚至日常生活,待完成的不同任务之间通常都会存在着某些依赖关系,这些依赖关系会为它们的执行顺序行程表部分约束。对于这种依赖关系,很容易将其表示成一个有向无环图(...