Curso
Documentos PDF
PDF é o Portable Document Format: um formato de arquivo que pode conter textos, imagens, gráficos e muito mais, diferente de arquivos de texto simples. É um arquivo com a extensão ".pdf", criado pela Adobe. Esse tipo de arquivo é independente de plataforma, funcionando em diferentes softwares, hardwares e sistemas operacionais.
Passos para instalar o pacote:
-
Você precisa instalar um pacote chamado "pypdf2", que lida com arquivos com a extensão ".pdf".

-
Você verá o pacote "pypdf2" instalado, como mostrado abaixo.

Lendo documentos PDF e extraindo dados
Você vai extrair apenas o texto do arquivo PDF, pois o PyPDF2 tem limitações para extrair conteúdo de mídia rica. Logos, imagens etc. não podem ser extraídos com ele — baixe o PDF a seguir para acompanhar este tutorial.
Baixar arquivo PDF

A instrução 'import' no código acima carrega o módulo PyPDF2. Use 'open('pdfFileName', 'openingMode')', onde 'pdfFilename' é 'test.pdf' e 'openingMode' é 'rb', para leitura em formato binário.

O PyPDF2 tem o método 'PdfFileReader', que recebe o objeto recém-criado 'pdfFileObject'. Agora você pode acessar o atributo 'numPages' de 'pdfFileObject', que informa o total de páginas.
O resultado acima é 1, pois o PDF tem apenas uma página.
Use o método 'getPage(0)' no 'pdfReaderObject' para obter a primeira página. Em seguida, armazene o resultado em 'firstPageObject' e imprima todo o texto daquela página com o método 'extractText()'.
O código acima retorna todo o texto do arquivo PDF. Porém, a imagem não aparece no terminal — esse conteúdo não é extraído com o PyPDF2.
Unindo vários arquivos PDF em um só
Você vai juntar dois arquivos PDF diferentes em um único PDF. O PDF antigo é o que você usou antes; já o novo pode ser baixado no link abaixo:
Novo arquivo PDF.

Vamos importar o módulo 'PdfFileMerger' do pacote PyPDF2, que ajuda a mesclar PDFs. Defina o 'path' com o caminho da pasta onde os arquivos estão, e liste os PDFs a serem unidos em 'pdf_files'.
O objeto 'merger' é criado com 'PdfFileMerger'. Em seguida, faça um loop sobre cada arquivo na lista e faça a união chamando o método 'append' com o caminho e o arquivo. Por fim, gere o resultado com 'merger.write()', criando um novo PDF com o conteúdo mesclado.
A imagem acima mostra o arquivo 'merged.pdf', que reúne o conteúdo de 'test.pdf' e 'test-1.pdf'.
Documentos Word
Arquivos do Word têm a extensão ".docx" no final do nome. Diferente de arquivos de texto simples, eles trazem formatação rica: tamanhos, alinhamentos, cores, imagens, fontes e outras estruturas do documento.
Você vai precisar de um aplicativo para trabalhar com documentos do Word. O mais popular para Windows e macOS é o Microsoft Word, mas ele é pago. Uma alternativa gratuita é o "LibreOffice", que vem pré-instalado em muitas distribuições Linux. Você pode baixar os aplicativos para Windows e macOS. Neste tutorial, vamos usar o Microsoft Word no Windows.
Passos para instalar o pacote
-
Instale o pacote "python-docx", que permite manipular documentos '.docx'.

-
Você verá o pacote 'python-docx' instalado, como mostrado abaixo.

Você pode acompanhar no shell interativo do Python, mas é melhor usar um editor de texto. Aqui usamos o Sublime Text para a parte de código deste tutorial.
Escrevendo um documento do Word

No primeiro trecho, o módulo 'document' é importado do pacote 'docx'. A segunda linha cria um novo documento do Word com o objeto Document. O arquivo é salvo como 'first.docx' usando 'document.save()'.
Adicionar um título

O código acima usa 'Document()' para abrir um novo arquivo e 'document.save('addHeader.docx')' para salvar o documento editado. Adicione um título com o método 'add_heading('texto', level=número)', que recebe o texto e o nível de título, de 0 a 4.

O resultado é o arquivo 'addedHeader.docx'. O nível 0 cria um destaque com uma linha horizontal abaixo do texto; o nível 1 é o título principal. Os demais níveis são subtítulos com tamanhos de fonte em ordem decrescente.
Adicionar um parágrafo

O código acima usa 'Document()' para abrir um novo documento e 'document.save('addParagraph.docx')' para salvar o arquivo editado. Adicione parágrafos com 'add_paragraph('texto', style='estilo_opcional')'. O parâmetro 'style' é opcional; você pode usar, por exemplo, 'List Number' e 'List Bullet'.

O resultado é o arquivo 'addedParagraph.docx', com um parágrafo simples na primeira linha. Depois, um título e, abaixo dele, uma lista ordenada com os itens 1 e 2. Em seguida, há outro título com dois itens em uma lista com marcadores.
Adicionar uma imagem

O código acima usa 'Document()' para criar um novo arquivo e 'document.save('addPicture.docx')' para salvar o documento editado. Adicione a imagem com 'add_picture()', cujo primeiro parâmetro é o caminho do arquivo, por exemplo 'cat-1.jpeg'. Largura e altura são parâmetros opcionais, com padrão de 72 dp; aqui usamos 'Inches' para definir as dimensões.

O resultado é o arquivo 'addedPicture.docx', com uma imagem de gato com 1,25 polegadas de largura e altura.
Lendo um documento do Word
Agora vamos ler um documento de exemplo no Python. Baixe em:
Baixar exemplo.

A primeira linha importa 'Document' do módulo 'docx' para carregar o arquivo necessário e criar um objeto. 'obtainText' é uma função que recebe o arquivo 'fullText.docx'. O loop percorre cada parágrafo acessado por 'document.paragraphs' e os insere em uma lista vazia com 'append'. Por fim, a função retorna a lista de parágrafos, cada um terminado por uma nova linha.

A saída acima traz apenas o texto simples, sem estilo, cor etc., ou seja, não é um documento de texto rico.
Parabéns
Parabéns, você concluiu a leitura deste tutorial.
Se quiser aprender mais sobre importação de dados no Python, experimente o curso Introduction to Importing Data in Python da DataCamp.
Confira também nosso tutorial de estruturas de dados em Python.
Você também pode explorar os recursos abaixo para ampliar seu conhecimento em tópicos específicos.
Referências:
Automate the Boring Stuff with Python: Working with Word Documents