@ slh2080: Postar "Resolvido" não é o que você faz neste site. O que você faz é escolher a resposta que realmente usou e clicar na marca de seleção para indicar que resolveu o seu problema.
S.Lott
1
Desculpe. Obrigado por apontar meu erro. Não é tarefa de casa, apenas aprender python no meu tempo livre. Cliquei na resposta que usei, mas isso foi antes de eu ver a resposta ghostdog74.
Seu primeiro exemplo é usar redundantes para loops. Você pode passar com - [os.remove (f) para f em os.listdir (".") Se f.endswith (". Bak")] - como as compreensões de lista devem ser usadas. Ou você pode mover o 'if' na compreensão para o loop for - for f em os.listdir ("."): If f.endswith (". Bak"): os.remove (f)
dragonjujo
@ slh2080 Como você diz que o problema foi resolvido, por que não marcar a resposta como correta?
blwy10
5
Cuidado com o os.listdir (".") !!! Eu usei esse código e esqueci de mudar o caminho, todo o meu código se foi !!! Tentei dois utilitários diferentes para recuperar, mas sem sorte !!
Lei Guo
@LeiGuo Corrigido isso.
yugr 8/10/19
26
Use os.chdirpara alterar o diretório. Use glob.globpara gerar uma lista de nomes de arquivos que terminam com '.bak'. Os elementos da lista são apenas strings.
Então você pode usar os.unlinkpara remover os arquivos. (PS. os.unlinkE os.removesão sinônimos para a mesma função.)
#!/usr/bin/env pythonimport glob
import os
directory='/path/to/dir'
os.chdir(directory)
files=glob.glob('*.bak')for filename in files:
os.unlink(filename)
No Python 3.5, os.scandiré melhor se você precisar verificar os atributos ou o tipo de arquivo - consulte as os.DirEntrypropriedades do objeto retornado pela função.
import os
for file in os.scandir(path):if file.name.endswith(".bak"):
os.unlink(file.path)
Isso também não requer alteração de diretórios, pois cada um DirEntryjá inclui o caminho completo para o arquivo.
shutil.rmtree(path)
poderia ser usada .Respostas:
Via
os.listdir
eos.remove
:Ou via
glob.glob
:Certifique-se de estar no diretório correto, eventualmente usando
os.chdir
.fonte
Use
os.chdir
para alterar o diretório. Useglob.glob
para gerar uma lista de nomes de arquivos que terminam com '.bak'. Os elementos da lista são apenas strings.Então você pode usar
os.unlink
para remover os arquivos. (PS.os.unlink
Eos.remove
são sinônimos para a mesma função.)fonte
No Python 3.5,
os.scandir
é melhor se você precisar verificar os atributos ou o tipo de arquivo - consulte asos.DirEntry
propriedades do objeto retornado pela função.Isso também não requer alteração de diretórios, pois cada um
DirEntry
já inclui o caminho completo para o arquivo.fonte
if file.name.endswith(".bak"):
você pode criar uma função. Adicione maxdepth como desejar para percorrer subdiretórios.
fonte
Primeiro encaminhe- os e depois desvincule-os .
fonte
No Linux e macOS, você pode executar um comando simples no shell:
fonte
Eu sei que isso é velho; no entanto, aqui seria como fazê-lo usando apenas o módulo OS ...
fonte