2011-07-15 37 views
7

Tôi có một kịch bản py mà xử lý các file với phần mở rộng' .hgx'.Example: test.hgx (có rất nhiều tập tin như vậy với hgx mở rộng)Xóa các tập tin nhất định sử dụng python

Các kịch bản xử lý test.hgx và tạo một test_bac.hgx mới và khi chạy lại nó sẽ tạo test_bac_bac.hgx. Vì vậy, mỗi khi chạy tập lệnh sẽ tạo một tệp với '_bac'.

Có một số giải pháp mà tôi có thể sử dụng trong tập lệnh có thể xóa tất cả các tệp '_bac' và '_bac_bac ...' trước khi bắt đầu mã thực tế.

Tôi đã sử dụng chức năng glob.glob

for hgx in glob.glob("*.hgx"): 

Tôi có thể sử dụng chức năng này để xóa những tập tin 'X_bac.hgx' và các file _bac_bac..hgx khác?

Bất kỳ trợ giúp/ý tưởng nào sẽ được đánh giá cao.

Cảm ơn

Trả lời

19
import os 
import glob 
for hgx in glob.glob("*_bac.hgx"): 
    os.remove(hgx) 
1

glob.glob("*_bac.hgx") sẽ giúp bạn tải tệp. Sau đó, bạn có thể sử dụng chức năng os.remove để xóa tệp trong vòng lặp của mình.

3

Một giải pháp rất giống nhau sẽ

import os 
import glob 
map(os.remove, glob.glob("*_back.hgx")) 

Nhưng bên cạnh có một biểu hiện hơi nhỏ gọn hơn, giúp bạn tiết kiệm một tên biến trong không gian tên hiện tại.

+0

Trong Python 3, bạn cần phải sau đó _invoke_ trình tạo được trả về bởi 'map', có thể bằng cách chuyển nó thành một' danh sách'. – uckelman

Các vấn đề liên quan