我是python的新手,我想创建一个新的txt文件,不替换旧文件
我尝试创建一个新文件:
def savebill():
lineadd=" -------------------------------------------\n"
print (lineadd)
bill=open('bill.txt','w')
bill.write(lineadd)
bill.close()
当我想保存新帐单时,旧文件将被替换,我需要保留旧保存的副本。
答案 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