Alıştırmalar
← Ünite 14

Ünite 14: Word ve Pdf Dosya Yönetimi — Alıştırmalar

Ders kitabının açık uçlu alıştırmaları. Bunlar çoktan seçmeli sınav sorusu değil — düşünmeni, araştırmanı, kendi cümlelerinle anlatmanı isteyen etkinlikler. Kitabın verdiği örnek yanıtlar kapalı duruyor; önce kendin dene.

  1. Alıştırma 1myders hazırladı
    Word (.docx) ve PDF (.pdf) dosyalarının neden basit metin dosyaları (.txt) gibi doğrudan 'r' veya 'w' modlarıyla açılamayacağını, bu dosyaların iç yapısını göz önünde bulundurarak açıklayınız.
    Yanıt / ipucu
    Word ve PDF dosyaları sadece düz metin içermeyip; yazı tipi, stil, tablo ve görsel gibi karmaşık biçimsel verileri barındıran ikili (binary) dosyalardır. Bu nedenle, bu dosyaların veri bozulması yaşanmadan okunup yazılabilmesi için Python'da 'rb' (read binary) veya 'wb' (write binary) modlarının kullanılması zorunludur.
  2. Alıştırma 2myders hazırladı
    python-docx kütüphanesinde bir paragraf içindeki belirli bir kelimeyi kalın (bold) veya italik yapmak için neden doğrudan paragraf nesnesi yerine 'run' (metin parçası) nesnesinin kullanılması gerektiğini araştırıp açıklayınız.
    Yanıt / ipucu
    Bir paragraf nesnesi metnin tamamını tek bir blok olarak temsil eder. Paragraf içindeki farklı kelimelere veya bölümlere farklı stiller (kalın, italik vb.) uygulamak için metnin farklı parçalara, yani 'run' nesnelerine bölünmesi ve biçimlendirmenin bu nesneler üzerinden yapılması gerekir.
  3. Alıştırma 3myders hazırladı
    python-docx kütüphanesini kullanarak 3 satır ve 3 sütundan oluşan bir tablo oluşturan, ardından bu tablonun ilk hücresine (0,0) erişip içine veri yazan örnek bir Python kod bloğu tasarlayınız.
    Yanıt / ipucu
    'table = doc.add_table(rows=3, cols=3)' komutu ile tablo oluşturulur. İlk hücreye erişmek ve veri yazmak için sıfır tabanlı indeksleme kullanılarak 'table.cell(0, 0).text = "Veri"' kodu yazılmalıdır.
  4. Alıştırma 4myders hazırladı
    PyPDF2 kütüphanesinde 'PdfReader' ve 'PdfWriter' sınıflarının görevlerini karşılaştırarak, mevcut bir PDF dosyasının ilk sayfasını yeni bir PDF dosyası olarak kaydetmek için bu iki sınıfın nasıl birlikte çalışması gerektiğini açıklayınız.
    Yanıt / ipucu
    'PdfReader' mevcut PDF dosyasını okumak ve sayfalarına erişmek için kullanılırken, 'PdfWriter' yeni bir PDF dosyası oluşturmak için kullanılır. İlk sayfa 'reader.pages[0]' ile okunup 'writer.add_page()' metoduyla yeni yazıcı nesnesine aktarılır ve 'wb' modunda kaydedilir.
  5. Alıştırma 5myders hazırladı
    PyPDF2 kütüphanesindeki 'encrypt()' metodunu kullanarak bir PDF dosyasını şifrelediğinizde, orijinal kaynak dosyanın bu işlemden nasıl etkilendiğini ve şifreli yeni dosyanın nasıl üretildiğini açıklayınız.
    Yanıt / ipucu
    Şifreleme işlemi orijinal kaynak dosya üzerinde doğrudan bir değişiklik yapmaz. Bunun yerine, 'PdfWriter' nesnesine aktarılan sayfalara 'encrypt()' metodu ile parola koruması uygulanır ve 'write()' metoduyla diskte parola korumalı tamamen yeni bir PDF dosyası oluşturulur.