Python — удаление программно созданных файлов word и pdf

#python #pdf

#python #PDF

Вопрос:

У меня есть код, который генерирует документы word из файла Excel с помощью mailmerge, а затем преобразует документы word в PDF, а затем из PDF в PNG. Я ищу способ удаления документов word после создания PDF-файлов и удаления PDF-файлов после создания файлов PNG.

Ниже приведен код, с которым я работаю:

 #Code for the conversion from docx to pdf    
 wdFormatPDF = 17
    
    basepath="C:/Users/.../images"
    
    os.chdir(base_path)
    with os.scandir(base_path) as entries:
        for entry in entries:
            if entry.is_file() and (entry.name[-4:]=="docx"):
                in_file=base_path entry.name
                out_file=base_path entry.name[:-4] "pdf"
                word = win32com.client.DispatchEx('Word.Application')   
                doc = word.Documents.Open(in_file)
                doc.SaveAs(out_file, FileFormat=wdFormatPDF)
                doc.Close()
                print("Document " out_file " created !!!")
                #word.Quit()  
    word.Quit()
    
    #Code for the conversion from pdf to png 
    
    basepath="C:/Users/.../images"
    
    os.chdir(basepath)
    with os.scandir(basepath) as entries:
        for entry in entries:
            if entry.is_file():
                if entry.name[-3:]=="pdf":
                    input_filename=basepath   entry.name
                    images=convert_from_path(input_filename)
                    for i, image in enumerate(images):
                        fname=entry.name[:-4] ".PNG"
                        image.save(fname,"PNG") 
                        print("Document " fname " created !!!n")
  

Комментарии:

1. Вы можете использовать os.remove() для удаления любого файла. Итак, после того, как вы закончили создавать документы, просто просмотрите исходные файлы и используйте эту функцию, чтобы удалять их один за другим.

Ответ №1:

Вы должны сохранить ссылки на файлы в переменной, а затем просто удалить ее, когда они больше не понадобятся:

 import os
os.remove("/link/to/the/file.pdf")
  

Или, если вы уверены, что в каталоге нет других файлов pdf / docx:

 import os

for filename in os.listdir(directory):
    if filename.endswith(".pdf") or filename.endswith(".docx"): 
         os.remove(filename)