2009-06-13 18 views
6

Tek dosyaları nasıl sileceğimi biliyorum, ancak bir dosyadaki bir dizindeki tüm dosyaların nasıl silineceğine ilişkin uygulamada kayboluyorum. Windows Python yazarak dosyaları silme

dizin Dosyaları .config olan tüm dosyaları silmek istiyor

myfolder \ fakat diğerleri için hiçbir olduğunu varsayalım. Bunu nasıl yaparım? ,

import os 
files = os.listdir("myfolder") 
for f in files: 
    if not os.path.isdir(f) and ".config" in f: 
    os.remove(f) 

Bir dizindeki dosyaları listeler ve bu bir dizin var ve eğer dosya adı her yerde İçinde ".config" etti:

Teşekkür Lütfen

+0

.config olan tüm * dosyaları * silmek istediğiniz anlamına mı geliyor? – Triptych

+0

Evet! Fixed –

+0

0conch dosyalarının tümünü belirli bir yoldan silmek mi istiyorsunuz? sadece bir .config dosyasını silmek istiyorsanız, o zaman sadece os.remove yapabilirsiniz (". config") –

cevap

4

aşağıdaki gibi bir şey yapacağını silin. Ya da klasörümle aynı dizinde olmanız veya dizinin tam yolunu vermeniz gerekir. Bunu yinelemeli olarak yapmanız gerekiyorsa, o.walk function'u kullanırdım.

+0

Aslında dosyaları kastediyorum, değil klasörler. Üzgünüz Dan –

+0

Sizin hatanız değil - ama bu soru, OP'nin soruyu düzenlemesi nedeniyle artık önemsiz. – Triptych

+0

Yine de yinelenen güzel bir örnek! –

15

glob modülünü kullanın: Burada

import os 
from glob import glob 

for f in glob ('myfolder/*.config'): 
    os.unlink (f) 
+1

+1: Evet, glob buradaki doğru yaklaşımdır (eğer alt dizinlere gitmek istemiyorsanız, tabii ki - bu os.walk'a ihtiyaç duyar). –

1

ya gitmek:

import os 

# Return all files in dir, and all its subdirectories, ending in pattern 
def gen_files(dir, pattern): 
    for dirname, subdirs, files in os.walk(dir): 
     for f in files: 
     if f.endswith(pattern): 
      yield os.path.join(dirname, f) 


# Remove all files in the current dir matching *.config 
for f in gen_files('.', '.config'): 
    os.remove(f) 

Not Ayrıca gen_files kolayca str.endswith beri desen bir demet kabul etmek yeniden yazılabilir bir demet kabul

İlgili konular