吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 602|回复: 13
收起左侧

[求助] 关于python删除文件操作

[复制链接]
onedayday-wb 发表于 2023-7-16 22:53
本帖最后由 onedayday-wb 于 2023-7-16 23:49 编辑

求助一下坛友,就是我的需求是用程序来自动删除自定义路径下的日志文件,可现在程序只能删除程序所在的文件夹下的文件,而不能删除自己自定义的路径,请问我该怎么改代码啊?以下是我的实现代码,求指正
config.txt
[Asm] 纯文本查看 复制代码
{
# 日志所在文件夹的路径,注意格式
"del_file_path": "C:/Users/oneday/Desktop/haofan/log",
# 删除15天前的文件
"day":"15",
}

main.py
[Python] 纯文本查看 复制代码
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)


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

starcrafter 发表于 2023-7-16 23:12
盲猜一下,你要删除的文件是在桌面的文件夹里,你的PYthon程序权限不够,删不了桌面文件。你可以在D盘建文件,用你的程序看能不能删除,以此来验证是否权限问题。如果不是权限问题,坐等大神回复。
 楼主| onedayday-wb 发表于 2023-7-16 23:48
starcrafter 发表于 2023-7-16 23:12
盲猜一下,你要删除的文件是在桌面的文件夹里,你的PYthon程序权限不够,删不了桌面文件。你可以在D盘建文 ...

刚试了一下,还是不行
whoami233 发表于 2023-7-17 02:13
sai609 发表于 2023-7-17 07:25
删除自定义路径下的日志文件:手动图形界面操作即可
一般都是ask如何保留历史日志,为啥耀删除呢?
starcrafter 发表于 2023-7-17 08:17
查了一下我以前写的相关程序 ,楼主在24行前插入这句:
os.chdir(del_file_path)
应该就可以了

免费评分

参与人数 1吾爱币 +1 收起 理由
onedayday-wb + 1 搞出来了,是的,没有cd到目录进去

查看全部评分

Miluzhe 发表于 2023-7-17 10:02
谢谢分享
w759003376 发表于 2023-7-17 10:18
看样子就是没有加路径,所以没有删除指定的路径文件,所以加个路径就行了
taoxwl666 发表于 2023-7-17 10:43
插入这个试试
os.chdir(del_file_path)

免费评分

参与人数 1吾爱币 +1 收起 理由
onedayday-wb + 1 热心回复!

查看全部评分

安伦 发表于 2023-7-17 10:57
[Python] 纯文本查看 复制代码
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吾爱币 +1 收起 理由
onedayday-wb + 1 搞出来了,是的,没有cd到目录进去

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表