0

我对python有点陌生,我想创建一个新的txt文件而不替换旧文件

我尝试这个来创建一个新文件:

def savebill():

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

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

4

2 回答 2

2

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

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

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

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

该模式有 7 个选项:

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

'w' - 打开写入,首先截断文件

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

'a' - 打开写入,如果存在则附加到文件末尾

'b' - 二进制模式

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

'+' - 打开一个磁盘文件进行更新(读写)

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

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

于 2019-07-01T15:08:44.523 回答
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
于 2020-07-27T03:28:12.900 回答