Python ile PDF ve Word Belgelerini Okuma ve Düzenleme
Bu eğitim, PDF belgelerini okumanıza ve birden fazla PDF dosyasını tek bir PDF dosyasında birleştirmenize olanak tanır. Ayrıca Python ile Word belgelerinin nasıl okunup yazılacağını gösterir.
PDF, düz metin dosyalarından farklı olarak metinler, görseller, grafikler vb. içeren Taşınabilir Belge Biçimi’dir. '.pdf' uzantısına sahip bir dosyadır ve Adobe tarafından geliştirilmiştir. Bu dosya türü yazılım, donanım ve işletim sistemleri gibi herhangi bir platformdan bağımsızdır.
Paket Kurulum Adımları:
'.pdf' uzantılı dosyaları işleyebilen "pypdf2" adlı bir paketi kurmanız gerekir.
PyPDF2 zengin medya içeriklerini çıkarmada sınırlı olduğundan yalnızca PDF dosyasındaki metni çıkaracaksınız. Logolar, resimler vb. içerikler bundan çıkarılamaz — bu eğitimle çalışmak için aşağıdaki PDF dosyasını indirmeniz gerekir. PDF dosyasını indirin
Yukarıdaki koddaki 'import' ifadesi PyPDF2 modülünü getirir. 'open('pdfFileName' , 'openingMode')' kullanmanız gerekir; burada 'pdfFilename' 'test.pdf' ve 'openingMode' yalnızca ikili biçimde okuma anlamına gelen 'rb'dir.
PyPDF2, yeni oluşturulan 'pdfFileObject' nesnesini alan 'PdfFileReader' adlı bir metoda sahiptir. Artık 'pdfFileObject' üzerinden toplam sayfa sayısını veren 'numPages' adlı özelliğe erişebilirsiniz.
Yukarıdaki çıktı 1’dir. Çünkü PDF dosyasının yalnızca bir sayfa olduğunu görebilirsiniz.
İlk sayfayı almak için pdfReaderObject içinde 'getPage(0)' metodunu kullanabilirsiniz. Sonuç 'firstPageObject' içinde saklanır ve bu sayfadaki tüm metinler 'extractText()' metodu kullanılarak yazdırılabilir.
Yukarıdaki kod PDF dosyasındaki tüm metni verir. Ancak terminalde görsel gösterilmez; bu, pyPDF2 ile elde edilemez.
Birden Fazla PDF Dosyasını Tek Bir PDF’te Birleştirme
İki farklı PDF dosyasını tek bir PDF dosyasında birleştireceksiniz. Eski PDF dosyası daha önce çalıştığınız dosyadır; yeni PDF dosyasını ise aşağıdaki bağlantıdan indirebilirsiniz: Yeni PDF dosyası.
PDF dosyalarını birleştirmeye yardımcı olan PyPDF2 paketinden PdfFileMerger modülünü içe aktaracaksınız. Dosyanın bulunduğu klasörün yolunu belirten 'path' tanımlanır. Ayrıca, birleştirilecek pdf dosyaları bir listede 'pdf_files' içine eklenir.
'PdfFileMerger' yardımıyla birleştirici nesnesinin oluşturulduğunu görebilirsiniz. Listedeki her dosya için döngü kurulur ve 'append' metoduna yol ve dosya verilerek birleştirme yapılır. Son olarak, 'merger.write()' kullanılarak çıktı alınır ve birleştirilmiş içerik yeni bir PDF dosya adıyla oluşturulur.
Yukarıdaki görsel, 'test.pdf' ve 'test-1.pdf' dosyalarından birleştirilmiş içerik içeren 'merged.pdf' dosyasını göstermektedir.
Word Belgeleri
Word belgeleri, dosya adının sonunda ".docx" uzantısını taşır. Bu belgeler yalnızca düz metin dosyalarındaki gibi metin içermez; zengin metin belgesidir. Zengin metin belgesi; boyut, hizalama, renk, resimler, yazı tipi vb. yapıları içerir.
Word Belgeleri ile çalışmak için bir uygulamaya ihtiyacınız vardır. Windows ve Mac işletim sistemleri için popüler uygulama Microsoft Word’dür, ancak ücretli bir abonelik platformudur. Bununla birlikte, Linux’ta ön yüklü gelen "LibreOffice" gibi ücretsiz bir alternatif vardır. Uygulamaları Windows ve Mac işletim sistemleri için indirebilirsiniz. Bu eğitimde Windows işletim sisteminde Microsoft Word kullanılacaktır.
Paket Kurulum Adımları
'.docx' uzantılı Word belgelerini işleyebilen "python-docx" adlı bir paketi kurmanız gerekir.
Python’ın sağladığı etkileşimli kabukta birlikte kod yazabilirsiniz, ancak bir Metin Düzenleyici kullanmanız tercih edilir. Bu eğitimde kodlama kısmı için Sublime Text kullanılmıştır.
Bir Word Belgesi Yazma
Yukarıda ilk satırda 'docx' paketinden 'document' modülünün içe aktarıldığını görebilirsiniz. İkinci satırdaki kod, Document nesnesinin yardımıyla yeni bir Word belgesi oluşturur. Dosya adı 'document.save()' kullanılarak 'first.docx' olarak kaydedilir.
Başlık ekleme
Yukarıdaki kodda 'Document()' yeni bir dosya açar ve 'document.save('addHeader.docx')' yeni düzenlenmiş bir docx dosyası oluşturmak için kullanılır. 'add_heading('text,' level=number)' metodu ile başlık ekleyebilirsiniz; bu metod metni başlık olarak alır ve başlık seviyesi 0 ile 4 arasında başlar.
Yukarıdaki kod, yeni oluşturulan 'addedHeader.docx' dosyasını üretir; 0 seviyesi metnin altında yatay çizgi olan bir manşet yaparken, 1. seviye ana başlıktır. Benzer şekilde diğer başlıklar, yazı tipi boyutları azalarak giden alt başlıklardır.
Paragraf ekleme
Yukarıdaki kodda 'Document()' yeni bir belge dosyası açar ve 'document.save('addParagraph.docx')' yeni düzenlenmiş bir docx dosyası oluşturmak için kullanılır. 'add_paragraph('text,' style='required_style')' metodu ile paragraf ekleyebilirsiniz; bu metod metni alır ve 'style' isteğe bağlı bir argümandır; 'List Number' ve 'List Bullet' kullanılabilir.
Yukarıdaki kod, ilk satırda basit bir paragrafın bulunduğu yeni oluşturulmuş 'addedParagraph.docx' dosyasını üretir. Benzer şekilde bir başlık vardır ve altında 1 ve 2 numaralı öğelerden oluşan sıralı bir liste bulunur. Bunun altında ise iki öğeli, sırasız madde işaretli bir liste içeren başka bir başlık vardır.
Resim ekleme
Yukarıdaki kodda 'Document()' yeni bir belge dosyası oluşturur ve 'document.save('addPicture.docx')' yeni düzenlenmiş bir docx dosyası oluşturmak için kullanılır. 'add_picture()' ile görsel ekleyebilirsiniz; ilk parametre olan 'cat-1.jpeg' kedi görselinin yoludur. Genişlik ve yükseklik isteğe bağlı parametrelerdir; varsayılan değer '72 dp'dir, ancak burada 'Inches' kullanılmıştır.
Yukarıdaki kod, görselin genişlik ve yüksekliğinin 1,25 inç olduğu bir kedi resmi içeren yeni oluşturulmuş 'addedPicture.docx' dosyasını üretir.
Bir Word Belgesini Okuma
Şimdi Python ile örnek bir Word belgesini okuyacaksınız; şu adreste bulunabilir: Örneği indirin.
Koddaki ilk satır, gerekli belge dosyasını geçirmek ve bir nesne oluşturmak için kullanılan 'docx' modülünden Document’ı içe aktarır. 'obtainText', 'fullText.docx' dosyasını alan bir fonksiyondur. 'document.paragraphs' ile erişilen her paragraf için döngü kurulur ve 'append' metodu kullanılarak boş bir listeye eklenir. Son olarak, fonksiyon satır sonlarında yeni satır bulunan paragrafların bir listesini döndürür.
Yukarıdaki çıktı, stil, renk vb. olmadan düz metin verir; bu bir zengin metin belgesi değildir.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!