onedayday-wb 发表于 2023-7-16 22:53

关于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)

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

onedayday-wb 发表于 2023-7-16 23:48
刚试了一下,还是不行

有报什么错误之类的吗?

sai609 发表于 2023-7-17 07:25

删除自定义路径下的日志文件:手动图形界面操作即可
一般都是ask如何保留历史日志,为啥耀删除呢?

starcrafter 发表于 2023-7-17 08:17

查了一下我以前写的相关程序 ,楼主在24行前插入这句:
os.chdir(del_file_path)
应该就可以了

Miluzhe 发表于 2023-7-17 10:02

谢谢分享

w759003376 发表于 2023-7-17 10:18

看样子就是没有加路径,所以没有删除指定的路径文件,所以加个路径就行了

taoxwl666 发表于 2023-7-17 10:43

插入这个试试
os.chdir(del_file_path)

安伦 发表于 2023-7-17 10:57

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
查看完整版本: 关于python删除文件操作