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

yipeiwu_com5年前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中lambda函数 list comprehension 和 zip函数使用指南

lambda 函数 Python 支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做 lambda 的函数,是从 Lisp 借用来的,可以用在任何需要函数的地方。 def f...

python实现udp数据报传输的方法

本文实例讲述了Python实现UDP数据报传输的方法,非常具有实用价值。分享给大家供大家参考。具体方法分析如下: 服务端代码: import socket port = 8081...

简单掌握Python中glob模块查找文件路径的用法

glob使用UNIX shell规则查找与一个模式匹配的文件名。只要程序需要查找文件系统中名字与某个模式匹配的一组文件,就可以使用这个模块。 glob的模式规则与re模块使用的正则表达式...

Python 使用with上下文实现计时功能

引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导...

python中redis查看剩余过期时间及用正则通配符批量删除key的方法

具体代码如下所示: # -*- coding: utf-8 -*- import redis import datetime ''' # 1. redis设置过期时间的两种方式 e...