写文本文件而不用python删除旧的保存

时间:2019-07-01 15:05:34

标签: python

我是python的新手,我想创建一个新的txt文件,不替换旧文件

我尝试创建一个新文件:

def savebill():

    lineadd=" -------------------------------------------\n" 
    print (lineadd)
    bill=open('bill.txt','w')
    bill.write(lineadd)
    bill.close()

当我想保存帐单时,旧文件将被替换,我需要保留旧保存的副本

2 个答案:

答案 0 :(得分:0)

将“ w”更改为“ a +”:

bill=open('bill.txt','a+')

open是内置函数,用于打开文件并返回相应的文件对象。如果无法打开该文件,则会引发OSError。

第一个参数是您要打开的文件名,第二个参数是模式(有更多参数)。

该模式有7个选项:

  

'r'-打开以供阅读(默认)

     

'w'-打开以进行写入,首先将文件截断

     

'x'-打开以进行独占创建,如果文件已存在则失败

     

'a'-可以写入文件,如果存在则追加到文件末尾

     

'b'-二进制模式

     

't'-文本模式(默认)

     

'+'-打开磁盘文件以进行更新(读取和写入)

您可以结合使用一些参数,例如:'r+b'打开文件时不会被截断。

有关更多信息,请阅读docs文件: https://docs.python.org/3/library/functions.html#open

答案 1 :(得分:0)

import fnmatch
import os

def savebill():
    lineadd=" -------------------------------------------\n" 
    print (lineadd)
    # set a file target and check if it exists 
    files = fnmatch.filter((f for f in os.listdir('.')), 'bill*.txt') #target filename 
    
    file = len(files) # how many the files with the name are
    file + 1 # if you had "bill20.txt", adding 1 makes your new file to  be "bill21.txt"... etc
    bill = open('bill%s.txt'% file)
    bill.write('text')
    bill.close()
    # Can also be used in saving any file