如何在 python 中删除扩展名为 .log 的文件

how in python Remove files with .log Extension

如何列出 Python 目录中的所有文件并通过 .log 删除它们?

for root, dirs, files in os.walk(r'/home/m110/public_html/ts/'):
print(files)

output1281.log
output1020.log
log3.log
mem.py
output1087.log
bunker3.py
output1248.log
output1311.log
output1099.log
output1261.log
output1282.log
output1213.log
log43.log
output1291.log
output1095.log
output1209.log
usr.txt
output1210.log
log7.log
output1042.log
attack.py
output1032.log
output1318.log

i 运行 Centos7 中的这段代码,但我只需要带有 .log 文件扩展名的列表文件用于删除时间

如果你想使用os

for root, dirs, files in os.walk('/home/m110/public_html/ts/'):
    for file in files:
        if file.endswith('.log'):
            os.remove(root +  '/' + file)

在Python3+中,可以使用pathlib:

paths = pathlib.Path('/home/m110/public_html/ts/').glob('*.log')
for path in paths:
    path.unlink()

这也可以通过在 bash 中调用 rm *.log 来完成,但是对于 python:

import os
from glob import glob
log_file_list = glob('folder/*.log')
for file in log_file_list:
    os.remove(file)

这仅适用于文件夹顶层的文件。

Glob does pathname pattern matching as the unix bash does, os.remove 删除具有给定路径的文件。

如果你想包含子文件夹,你可以设置 recursive=True 标志并像这样更改搜索表达式:

import os
from glob import glob
log_file_list = glob('folder/**/*.log', recursive=True)
for file in log_file_list:
    os.remove(file)
import os
import shutil
files= next(os.walk(r'/home/m110/public_html/ts/'))[2]
for filename in files:
    ex=filename.split(".")[-1]
    if ex=='log':
       #print ex
       os.remove(filename)