PDF'ler hakkında konuşalım.
Bunları nasıl işleyeceğiz?
Yani, Python ile önceki bölümümüzde dosyalarla çalışmayı öğrendik ve görüntü işleme hakkında öğrendiğimiz herhangi bir
dosyayla çalışabileceğimizi hayal edebilirsiniz, ancak aynı zamanda herhangi bir metin
dosyasını, herhangi bir PDF dosyasını, herhangi bir CSV veya Excel dosyasını manipüle edebileceğimizi de öğrendik.
Bunların hepsi Python'da işleyebileceğimiz ve birlikte çalışabileceğimiz dosya türleridir.
Bu bölümde, PDF ve bunun nasıl çalışabileceği hakkında konuşacağız ve PDF hakkındaki bu bilgi farklı dosya
formatlarına aktarılacaktır.
Excel dosyaları ve CSV dosyaları hakkında kursun ilerleyen bölümlerinde makine öğrenimi konusuna girdiğimizde konuşacağız.
Ama şimdilik PDF'lerle çalışalım ve Python'u hayatımızı kolaylaştırmak için nasıl kullanabileceğimizi görelim.
Şimdi burada bu bölümde kullanacağımız bazı PDF dosyalarına bağlantı vereceğim.
Basit bir sahte PDF dosyamız var.
Aslında iki sayfadan oluşan başka bir PDF dosyamız var.
Ve sonra bu bölümde nihai projemiz için kaydedeceğimiz bir filigran PDF'miz var.
Ama buraya geri dönelim.
Şu ana kadar öğrendiklerimizden yola çıkarak, sizce ilk adımımız ne olmalı?
İlk adımımız, PDF dosyalarını işlemek için Python ile kullanabileceğimiz bir kütüphane bulmak.
Ve bu bölüm için hazır olun.
Gerçekten etkileyici bir web sitem var, muhtemelen gördüğünüz en iyi web sitesi, muhtemelen en temiz,
en modern web sitesi.
Yüklediğimiz pakete gelince, PIP three install adında bir şey yüklüyoruz.
P.
Y.
PDF.
İki.
Şimdi PDF'ler söz konusu olduğunda yükleyebileceğimiz pek çok paket var.
Kurs için tavsiye ettiğim bu.
Şimdi, bu yüklenirken, benim durumumda, zaten yüklendi.
Size web sitesi belgelerinin neye benzediğini göstereyim.
Hazır olun.
Güzelmiş.
İşte burada.
Vay canına.
Doğru.
Neden bilmiyorum ama bazı nedenlerden dolayı python dokümantasyon web siteleri en güzel değil.
Yani, bunların hepsi öznel, değil mi?
Bazı insanlar bunu seviyor, ancak PDF'lerle çalışma konusunda sizi heyecanlandırmıyor.
Bu site mi yapıyor?
Her neyse, burada aslında o kadar da büyük bir kütüphane olmadığını görebilirsiniz.
Ve belgelere tıklayıp her şeyi tekrar okuyabilirsiniz.
Ama sadece temelleri öğrenelim.
Bu yüzden yapacağım ilk şey pi pdf'yi içe aktarmak.
Yapacağımız şey ilkiyle, yani sahte PDF ile çalışmak; bu PDF dosyası üzerinde sahte PDF
dosyası yazan tek bir sayfadan oluşuyor.
Çok heyecan verici bir şey değil.
Şimdi.
Bu dosyayı nasıl açabiliriz?
Bunu önceki derslerden biliyoruz, değil mi?
Bunu open komutu ile kullanabiliriz ve dummy dot pdf diyeceğiz ve aynı klasörde olduğumuz için bu şekilde söyleyebilirim.
Oluşturduğum bir PDF dosyası var, bu yüzden sadece hey, aynı dizinden sahte pdf'yi al diyorum.
Ve burada şimdilik sadece read yapalım çünkü dosyayı okumak istiyorum ve sonra sadece as file diyelim ve ne elde ettiğimizi
görmek için şimdilik print file diyelim.
Python three pdf dot pie diyerek bu dosyayı çalıştıracağım.
Bakalım neler olacak.
Tamam.
Bir mesaj aldım.
Oh, rapçi ismi, aptal PDF.
Pekala, işe yarıyor gibi görünüyor.
Gerçekten işe yaradığını görmek için bunu biraz daha inceleyelim.
Yapabileceğimiz şey aslında dosyayı okumak için PDF'yi kullanmaktır.
Evet.
Hadi yapalım şunu.
Okuyucu eşittir pasta pdf diyebilir ve pdf yöntemini kullanabiliriz.
Dosya okuyucu.
Tekrar.
Bu Python dosyasını okumamızı sağlar.
O yüzden dosyayı buraya koyalım.
Sonra okuyucuyu yazdıracağız ve sayfa sayısı isteyebileceğiz.
Yine, bu kütüphane ile birlikte gelir, bu yüzden bunu çalıştıralım ve ne olduğunu görelim.
Pekala, bir hata alıyoruz.
PDF okuma uyarısı PDF Dosya Okuyucu akış dosyası nesnesi ikili modda değil diyor.
Bu ne anlama geliyor?
Unutmayın, ikili sistem birler ve sıfırlardır.
Doğru.
Eğer Aptallar'a tıklarsam.
Dummied up pdf.
Bir pdf'nin nasıl görünmesi gerektiğini düşündüğümüz PDF bu değil.
Ancak çalıştırdığınız programa bağlı olarak PDF dosyasını okuyamayabilir.
Yapmamız gereken şey, ki bu sadece hatırlamanız gereken bir standarttır, ikili dosyayı okumak
istediğimizdir.
Yani okunur ve sonra ikiye bölünür.
Burada olan şey, bunun bir dosya akışı nesnesi oluşturmasıdır.
Bu yüzden dosya nesnesini ikili moda dönüştürecektir.
Böylece dosya okuyucuya pdf.
Bu ikili dosya nesnesini okuyabilir.
Şimdi bunu tekrar çalıştırırsam, şuna bakın.
Okuyabiliyor.
Ve bana bunun bir sayfası olduğunu söylüyor.
İki sayfa nokta pdf yaparsam ve bunu çalıştırırsam.
İki sayfamız var.
Harika.
Şunu açıklığa kavuşturalım.
Ve pdf'imize geri dönelim.
Bu pdf'e kukla adını verdiğim için kendimi kötü hissediyorum.
Bu pdf'e kötü davranmamalıyım.
Bir dahaki sefere isimlendirme kurallarım üzerinde çalışacağım.
Tıpkı pi pdf ile görüntü işlemede gördüğümüz gibi, bu görüntüyü işlemek için pek çok şey yapabiliriz.
Örneğin, sayfayı buradan alabilirim.
Ve eğer sayfa alırsam, diyelim ki ilk sayfa ve bunu çalıştırıyorum.
Sayfa nesnesini buraya alıyoruz.
Şimdi burada anlamsız gibi görünüyor çünkü bu PDF'nin oluşturduğu özel bir nesne.
Ancak birinci sayfa gibi bir şey yaparsam, bu durumda bu ikinci sayfa olacaktır.
Bir hata alıyorum, sahte pdf'de yalnızca bir sayfa olduğu için liste dizininin aralık dışında olduğunu söyleyen bir dizin hatası.
Farklı şeyler de yapabiliriz, örneğin bu görüntüyü döndürelim ve 180 derece döndürelim.
Eğer bunu çalıştırırsam.
Bu işe yaramıyor.
Peki bu neden?
Çünkü p pdf two okuyucu nesnesini kullanır, ancak neyin döndürüleceğini bilmesi gerekir.
Bizim durumumuzda, döndürmek için aslında okuyucunun sayfasını almamız gerekiyor.
Bu yüzden okuyucu nokta gibi bir şey yapmamız gerekiyor.
Sayfayı al.
Sahte pdf'imizin ilk sayfasını alın.
Ve bunu sayfa değişkenine atayın, böylece artık sayfa nesnemiz olduğuna göre, bir sayfa nesnesi ve bir okuyucu nesnesi olduğunu
hatırlayın.
Şimdi bunu çalıştırıyorum ve page object has no attribute rotate elde ediyorum ve burada bir noktayı kanıtlamak için sizi biraz kandırmış
olabilirim.
Şimdi, bu rotate nesnesi olması gereken bir şey gibi görünüyor, ancak aslında istediğimiz doğru
isim değil.
Peki bunu nasıl çözebiliriz?
Bu da belgeleri okumamıza geri dönüyor.
Dosya okuyucuya geri dönersem ve arama yaparsam, döndürürsem ya da buraya geri dönersem, sayfa nesnesi sınıfına
sahip olduğumuzu görürüz, değil mi?
Sayfa nesnemiz var.
Şuraya tıklarsam, rotasyonu bulalım.
Döndürme sayfasını birleştirdiğimiz birkaç şey var.
Devam ediyoruz, devam ediyoruz, devam ediyoruz ve tamam, saat yönünde döndürme, saat yönünün tersine döndürme ve
açımız var.
Görünüşe göre ihtiyacımız olan şey bu.
Aslında bir döndürme yöntemimiz yok, ancak burada gördüğünüz gibi, kütüphanenin ne yaptığını bu şekilde anlıyoruz.
İstediğimiz takdirde ölçeklendirebileceğimiz bir ölçeğimiz de var.
Öyleyse sadece saat yönünde döndürmeyi kopyalayalım veya saat yönünün tersine döndürme yapalım.
Ve biz sadece 90 yapacağız.
Eğer bunu kaydedip çalıştırırsam.
Pekala, burada bir nesne geri alıyoruz, ancak bu nesne aslında bellekte.
Eğer kuklama geri dönersem.
Hiçbir şey değişmedi çünkü gerçekten hiçbir şey kurtarmadık.
Bunların hepsi bilgisayarımın hafızasında.
Bu program çalışmayı bıraktığında, çöpe gider.
O halde aptallaştırılmış PDF'imizi gerçekten yazacak ve saat yönünün tersine dönecek şekilde güncelleyelim.
Bunu nasıl yapabiliriz?
Başka bir anahtar kelimeyle.
Yani açık olanın içinde açık olan diyeceğiz ve buna eğri diyeceğiz.
Kriket böyle mi yazılıyor bilmiyorum, o yüzden tilt dot pdf ile devam edelim.
Bu dosyayı açacağız ve bu dosyaya ikili formatta yazacağız.
Ve dosya olarak söyleyeceğiz.
Ve burada, dosyayı bu yeni dosyaya yazacağız.
Ama bunu nasıl yapabiliriz?
Bu kütüphane bize writer nesnesi adı verilen bir şey verir, böylece bir writer değişkeni oluşturabiliriz.
Ve bu yazar değişkenini kullanacaktır.
Dosya okuyucu yerine PDF nokta pdf.
Elimizde bir dosya var.
Yazar.
Bu da nesneyi ve belleği yazmamızı sağlar, böylece artık yazar diyebilirim.
Nokta.
Doğru.
Ve adlandırma kuralını uygun hale getirmek için, bunun yeni dosya olacağını söyleyelim.
Bu yüzden yeni dosya diyeceğiz.
Bakalım işe yarayacak mı?
Temizleyeceğim.
Ve bunu çalıştıralım.
Tamam.
PDF'de eğimimiz var.
Ama aslında bir şeyi yapmayı unuttuk çünkü bir yazar nesnesi açtık ama aslında içine herhangi
bir PDF yazmıyoruz.
İdeal olarak, döndürülmüş sayfayı alır ve içine yazarız, değil mi?
Peki ne yapabiliriz?
Buradaki baskıyı kaldırın.
Sayfayı döndürdük ve şu anda sahip olduğumuz writer nesnesi ile writer, dot, add page diyebilir ve döndürdüğümüz
sayfayı verebiliriz.
Şimdi bunu bir kez daha çalıştırırsam.
Ve tilt'e git.
Burada yine anlamsız şeyler görüyoruz.
Ama bunu açarsak.
Şuna bir bak.
Pdf'imiz bu şekilde döndürülmüştür.
Çok, çok havalı.
Yani bu harika, ama biraz işe yaramaz, değil mi?
PDF'leri gerçekten kim döndürüyor?
Bunu okumak gerçekten zor, ancak en azından bu size PDF'leri işleme yeteneğimizi gösteriyor.
Bir sonraki videoda daha heyecan verici bir şey üzerinde çalışalım.
Bundan biraz daha faydalı bir şey yapmamızı istiyorum.
Şimdi biraz ara verelim ve bir sonraki bölümde görüşmek üzere.