簡體   English   中英

如果名稱存在,如何使用“01”創建文件?

[英]How to create a file with '01' if name exists?

open() 內置 function 中是否有特定參數,以便如果文件名已經存在,它會通過在文件名中添加數字來創建文件?

這樣如果“file.txt”存在,它會自動創建“file-01.txt”

或任何其他解決方案。!

不,我不認為有這樣的事情,但你可以使用os.path.isfile自己做:

import os
filename = "yourFileName.txt"
if os.path.isfile(filename): #check if filename exists in the directory
    filename = filename.split(".")[:-1] + "-01" + filename.split(".")[-1]
with open(filename, "w+") as f:
    f.write(yourString)

像這樣的東西?

import os
if os.path.exists(filename):
   fileparts = filename.split('.')
   filename = fileparts[0] + '01.'
   for a in fileparts[1:]:
     filename += a

我找到了解決辦法,謝謝!!

b = True
c = 1
while b:
    f_name = 'Task-{:02.0f}.txt'.format(c)
    try:
        f = open(f_name,'x')
        b = False
    except FileExistsError:
        c += 1
f.close()

看看你對此有何看法。 ...這就是我用來做你正在尋找的東西。 這是我之前發現的解決問題的最小方法,並且很容易包裝成 function:

import os

name = 'blah.txt'

uniq_name = name
while os.path.isfile(uniq_name):
    # if increment variable 'delta' isn't defined, make it 1.  Otherwise increment
    delta = delta+1 if 'delta' in vars() else 1
    uniq_name = f'{os.path.splitext(name)[0]}-{delta}{os.path.splitext(name)[1]}'

# this you don't need - it's just equivalent to a 'touch' command to show
# the output
open(uniq_name, 'a').close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM