@ slh2080: Posting "Terpecahkan" bukan yang Anda lakukan di situs ini. Yang Anda lakukan adalah memilih jawaban yang benar-benar Anda gunakan dan klik tanda centang untuk menunjukkan bahwa itu menyelesaikan masalah Anda.
S.Lott
1
Maaf. Terima kasih telah menunjukkan kesalahan saya. Ini bukan pekerjaan rumah, hanya belajar python di waktu luang saya. Saya mengklik jawaban yang saya gunakan tetapi itu sebelum saya melihat tanggapan ghostdog74.
Contoh pertama Anda menggunakan redundant untuk loop. Anda dapat lulus dengan - [os.remove (f) untuk f di os.listdir (".") Jika f.endswith (". Bak")] - karena pemahaman daftar dimaksudkan untuk digunakan. Atau Anda dapat memindahkan 'jika' dalam pemahaman ke dalam for loop - untuk f di os.listdir ("."): If f.endswith (". Bak"): os.remove (f)
dragonjujo
@ slh2080 Karena Anda mengatakan masalah telah diselesaikan, mengapa tidak menandai jawaban sebagai jawaban yang benar?
blwy10
5
Watch out the os.listdir (".") !!! Saya menggunakan kode ini dan lupa mengubah path, semua kode saya hilang !!! Sudah mencoba dua utilitas berbeda untuk memulihkan tetapi tidak berhasil !!
Lei Guo
@ LeiGuo Memperbaiki itu.
Yugr
26
Gunakan os.chdiruntuk mengubah direktori. Gunakan glob.globuntuk menghasilkan daftar nama file yang mengakhirinya '.bak'. Elemen daftar hanyalah string.
Maka Anda bisa menggunakan os.unlinkuntuk menghapus file. (PS. os.unlinkDan os.removemerupakan sinonim untuk fungsi yang sama.)
#!/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)
Dalam Python 3.5, os.scandirlebih baik jika Anda perlu memeriksa atribut atau tipe file - lihat os.DirEntryproperti objek yang dikembalikan oleh fungsi.
import os
for file in os.scandir(path):if file.name.endswith(".bak"):
os.unlink(file.path)
Ini juga tidak memerlukan perubahan direktori karena masing-masing DirEntrysudah menyertakan path lengkap ke file.
shutil.rmtree(path)
bisa digunakan .Jawaban:
Via
os.listdir
danos.remove
:Atau via
glob.glob
:Pastikan berada di direktori yang benar, akhirnya gunakan
os.chdir
.sumber
Gunakan
os.chdir
untuk mengubah direktori. Gunakanglob.glob
untuk menghasilkan daftar nama file yang mengakhirinya '.bak'. Elemen daftar hanyalah string.Maka Anda bisa menggunakan
os.unlink
untuk menghapus file. (PS.os.unlink
Danos.remove
merupakan sinonim untuk fungsi yang sama.)sumber
Dalam Python 3.5,
os.scandir
lebih baik jika Anda perlu memeriksa atribut atau tipe file - lihatos.DirEntry
properti objek yang dikembalikan oleh fungsi.Ini juga tidak memerlukan perubahan direktori karena masing-masing
DirEntry
sudah menyertakan path lengkap ke file.sumber
if file.name.endswith(".bak"):
Anda dapat membuat suatu fungsi. Tambahkan maxdepth sesuka Anda untuk melintasi subdirektori.
sumber
Pertama, gabungkan mereka, lalu putuskan tautannya .
sumber
Di Linux dan macOS Anda dapat menjalankan perintah sederhana ke shell:
sumber
Saya menyadari ini sudah tua; namun, berikut ini cara melakukannya dengan hanya menggunakan modul os ...
sumber