2012-07-02 3 views
1

У меня есть более 400 CBR файлов и нужно удалить первое изображение, содержащееся в каждом из них, чьи имена файлов имеют вид XXX-000a.gif где XXX совпадает с именем, содержащий CBR файла, который XXX.cbr. Как я могу это сделать в Python? Я нахожусь на OS X Lion.Удалите первый файл из многих архивов CBR с помощью Python

+1

Взгляните на модуль [glob] (http://docs.python.org/library/glob.html). – Trevor

ответ

0

Не видя, что вы уже пробовали, это лучшее, что я могу сделать

for fname in os.listdir('directoryWithCBRFiles'): 
    if fname.endswith('-000a.gif'): 
     os.remove(os.path.join('directoryWithCBRFiles', fname)) 

Надеется, что это помогает

+0

Downvoter: Если бы вы могли указать причину, я смог бы обновить свой ответ. – inspectorG4dget

+0

Вы не поняли вопрос правильно. Он спрашивает, как удалить определенный файл из архива RAR. Хорошее решение, вероятно, будет использовать библиотеку «rarfile». – Gfy

+0

@Gfy: Понятно. Даже перечитывая вопрос, это не ясно. – inspectorG4dget

1

Похожи библиотеке rarfile не поддерживает удаление файлов, так что я в конечном итоге с этим кодом:

from rarfile import RarFile, NoRarEntry 
from glob import glob 
import os, subprocess 

CBR_DIR = "directoryWithCBRFiles" 

for fname in glob(CBR_DIR + os.sep + "*.cbr"): 
    toremove = os.path.basename(fname)[:-4] + "-000a.gif" 
    try: # to check if the file exists 
     RarFile(fname).getinfo(toremove) 
    except NoRarEntry: 
     print("Wanted file not found in %s." % fname) 
     continue 

    # rar: http://www.rarlab.com/rar/rarosx-4.2.0.tar.gz 
    subprocess.call(["rar", "d", fname, toremove]) 

print("All done!") 
Смежные вопросы