python - 如何在程序重新运行/Python期间停止重写日志数据
问题描述
我在记录时遇到问题。每次我重新运行我的程序时,它都会覆盖文件中的日志数据,因为我还需要存储以前的数据。当有文件时,我创建了 if 语句,它并没有像我想的那样创建新的语句,但它并没有解决我的问题。也许有人知道这个问题?先感谢您!
from tkinter import *
from tkinter import filedialog
import easygui
import shutil
import os
from tkinter import filedialog
from tkinter import messagebox as mb
from pathlib import Path
import logging
from datetime import date
def open_window():
read=easygui.fileopenbox()
return read
#logging config
if Path('app.log').is_file():
print ("File exist")
else:
logging.basicConfig(filename='app.log', filemode="w", format='%(name)s - %(levelname)s - %(message)s ')
print ("File doesn't exist and will be created")
LOG_for="%(asctime)s, log content: %(message)s"
logger=logging.getLogger()
logger.setLevel(logging.DEBUG)
# Function for opening the
# file explorer window
def browseFiles():
filename = filedialog.askopenfilename(initialdir = "/",
title = "Select a File",
filetypes = (("Text files",
"*.txt*"),
("all files",
"*.*")))
# Change label contents
label_file_explorer.configure(text="File Opened: "+filename)
# move file function
def move_file():
source = open_window()
filename = os.path.basename(source)
destination =filedialog.askdirectory()
dest = os.path.join(destination,filename)
if(source==dest):
mb.showinfo('confirmation', "Source and destination are same, therefore file will be moved to Home catalog")
newdestination = Path("/home/adminas")
shutil.move(source, newdestination)
logging.shutdown()
#current_time()
logging.basicConfig(filename='app.log', filemode="w", format=LOG_for)
logging.info('File was moved to' + newdestination)
else:
shutil.move(source, destination)
mb.showinfo('confirmation', "File Moved !")
#current_time()
logging.basicConfig(filename='app.log', filemode="w", format=LOG_for)
logging.info('File was moved to' + destination)
# Create the root window
window = Tk()
# Set window title
window.title('File Explorer')
# Set window size
window.geometry("400x400")
#Set window background color
window.config(background = "white")
# Create a File Explorer label
label_file_explorer = Label(window,
text = "File Explorer using Tkinter",
width = 50, height = 4,
fg = "blue")
button_explore = Button(window,
text = "Browse Files",
command = browseFiles)
button_move = Button(window,
text = "Move File",
command = move_file)
button_exit = Button(window,
text = "Exit",
command = exit)
# Grid method is chosen for placing
# the widgets at respective positions
# in a table like structure by
# specifying rows and columns
label_file_explorer.grid(column = 1, row = 1)
button_move.grid(column = 1, row = 2)
button_exit.grid(column = 1,row = 3)
# Let the window wait for any events
logging.shutdown()
window.mainloop()
但是在shell中它可以正确打印,但是每次运行程序时,它都会像这样覆盖新数据,并且在重新运行后它会消失并被新数据取代:
2021-05-02 11:04:15,384, log level: INFO, log content: File was moved to/home/adminas/Documents
解决方案
不太明白你的问题。但是,如果您不想覆盖日志文件,请更改将新日志附加到日志文件的filemode
to which。'a'
推荐阅读
- sql-server - 使用 XPath 从 XML 中排除孙子
- java - 在 Fix4.4 中更改标签 31
- python - 如何使用 *args 和 **kwargs 注释可调用对象?
- php - 如何在php数组json中使用curl发送帖子数据
- github - 是否可以找到与使用 Github API 相关的项目板?
- hibernate - 将继承策略从 InheritanceType.JOINED 转换为 InheritanceType.SINGLE_TABLE 时出现 DuplicateMappingException
- amazon-web-services - travis-ci 无法解析 yml 文件
- php - 亚马逊产品广告 API 的 TooManyRequestsException
- python - 如何在odoo中更新列表时在方法内退出ZeroDivisionError?
- html - 如何在html中选择随机单词