关于python删除文件操作
本帖最后由 onedayday-wb 于 2023-7-16 23:49 编辑求助一下坛友,就是我的需求是用程序来自动删除自定义路径下的日志文件,可现在程序只能删除程序所在的文件夹下的文件,而不能删除自己自定义的路径,请问我该怎么改代码啊?以下是我的实现代码,求指正{:1_893:}{:1_893:}
config.txt
{
# 日志所在文件夹的路径,注意格式
"del_file_path": "C:/Users/oneday/Desktop/haofan/log",
# 删除15天前的文件
"day":"15",
}
main.py
import os
import sys
import time
from os import listdir
if __name__ == "__main__":
try:
with open("config.txt", encoding="utf-8") as f:
config = eval(f.read())
except FileNotFoundError:
print("请检查config.txt文件是否与程序位于同一路径")
os.system("pause")
sys.exit(1)
except SyntaxError:
print("请检查配置文件格式是否正确")
os.system("pause")
sys.exit(1)
del_file_path = config["del_file_path"]
print("要删除的路径:", del_file_path)
del_day_before = config["day"]
print("删除多少天的:", del_day_before)
for file_name in listdir(del_file_path):
if file_name.startswith("main.exe"):# 需要保留的文件名
continue
if os.path.isfile(file_name):
lastmodifytime = os.stat(file_name).st_mtime
endfiletime = time.time() - 3600 * 24 * int(del_day_before)
if endfiletime > lastmodifytime:
os.remove(file_name)
盲猜一下,你要删除的文件是在桌面的文件夹里,你的PYthon程序权限不够,删不了桌面文件。你可以在D盘建文件,用你的程序看能不能删除,以此来验证是否权限问题。如果不是权限问题,坐等大神回复。 starcrafter 发表于 2023-7-16 23:12
盲猜一下,你要删除的文件是在桌面的文件夹里,你的PYthon程序权限不够,删不了桌面文件。你可以在D盘建文 ...
刚试了一下,还是不行 onedayday-wb 发表于 2023-7-16 23:48
刚试了一下,还是不行
有报什么错误之类的吗? 删除自定义路径下的日志文件:手动图形界面操作即可
一般都是ask如何保留历史日志,为啥耀删除呢? 查了一下我以前写的相关程序 ,楼主在24行前插入这句:
os.chdir(del_file_path)
应该就可以了 谢谢分享 看样子就是没有加路径,所以没有删除指定的路径文件,所以加个路径就行了 插入这个试试
os.chdir(del_file_path)
import os
import sys
import time
from os import listdir
if __name__ == "__main__":
try:
with open("config.txt", encoding="utf-8") as f:
config = eval(f.read())
except FileNotFoundError:
print("请检查config.txt文件是否与程序位于同一路径")
os.system("pause")
sys.exit(1)
except SyntaxError:
print("请检查配置文件格式是否正确")
os.system("pause")
sys.exit(1)
del_file_path = config["del_file_path"]
print("要删除的路径:", del_file_path)
del_day_before = config["day"]
print("删除多少天的:", del_day_before)
for file_name in listdir(del_file_path):
full_file_path = os.path.join(del_file_path, file_name)# 获取文件的完整路径
if file_name.startswith("main.exe"):# 需要保留的文件名
continue
if os.path.isfile(full_file_path):# 使用完整路径检查文件是否存在
lastmodifytime = os.stat(full_file_path).st_mtime
endfiletime = time.time() - 3600 * 24 * int(del_day_before)
if endfiletime > lastmodifytime:
os.remove(full_file_path)# 使用完整路径删除文件
页:
[1]
2