Python >> Python tutoriál >  >> Python

Smazání všech souborů v adresáři pomocí Pythonu

Prostřednictvím os.listdir a os.remove :

import os

filelist = [ f for f in os.listdir(mydir) if f.endswith(".bak") ]
for f in filelist:
    os.remove(os.path.join(mydir, f))

Použití pouze jedné smyčky:

for f in os.listdir(mydir):
    if not f.endswith(".bak"):
        continue
    os.remove(os.path.join(mydir, f))

Nebo přes glob.glob :

import glob, os, os.path

filelist = glob.glob(os.path.join(mydir, "*.bak"))
for f in filelist:
    os.remove(f)

Ujistěte se, že jste ve správném adresáři, případně použijte os.chdir .


Použijte os.chdir pro změnu adresáře .Použijte glob.glob vygenerovat seznam názvů souborů, které končí '.bak'. Prvky seznamu jsou pouze řetězce.

Pak můžete použít os.unlink k odstranění souborů. (PS. os.unlink a os.remove jsou synonyma pro stejnou funkci.)

#!/usr/bin/env python
import glob
import os
directory='/path/to/dir'
os.chdir(directory)
files=glob.glob('*.bak')
for filename in files:
    os.unlink(filename)

V Pythonu 3.5 os.scandir je lepší, když potřebujete zkontrolovat atributy nebo typ souboru - viz os.DirEntry pro vlastnosti objektu, který je vrácen funkcí.

import os 

for file in os.scandir(path):
    if file.name.endswith(".bak"):
        os.unlink(file.path)

To také nevyžaduje změnu adresářů od každého DirEntry již obsahuje úplnou cestu k souboru.


Předchozí příspěvek