piton

Python Kullanarak Görevleri Zamanlama

Python Kullanarak Görevleri Zamanlama
Hayatımızdaki bazı görevler gerçekten zaman alıyor ve bu görevleri tekrar tekrar yapmaktan sıkılıyoruz. Bu sıkıcı görevlerden kaçınmak için bu görevleri sistemimizde otomatik hale getiriyoruz. Python, eşyalarımızı otomatikleştirmek için kullanılabilecek birçok otomasyon modülüne sahiptir. Aşağıda otomasyonun önemini ve python kullanarak eşyalarımızı nasıl otomatikleştireceğimizi tartışacağız. Ayrıca, eşyalarımızı otomatikleştirmeye yardımcı olan python'daki bazı otomasyon modüllerini tartışacağız. Ardından, python kullanarak bazı otomasyon kullanım durumları göreceğiz. Sonunda, python betiğimizi başlangıçta otomatik olarak çalışacak şekilde nasıl programlayabileceğimizi göreceğiz.

Neden Eşyalarımızı Otomatikleştiriyoruz?

Eşyalarımızın otomasyonu hayatımızı kolaylaştırabilir. Birçok avantajı vardır ancak otomasyonun bazı önemli avantajları aşağıda verilmiştir

Python ile Otomasyon

Bash, perl vb. gibi birçok betik dili vardır. manuel süreçleri otomatikleştirmek için, ancak python ihtiyaçlarımızı karşılamak için uygun bir ortam sağlıyor. Python programlama dilini kullanarak bir şeyleri otomatikleştirmek diğer dillerden daha kolaydır. Python'un birçok otomasyon modülü vardır (i.e. alt işlem, şutil, işletim sistemi, pyautogui, selenyum vb.) otomasyonda kullanılabilen. Eşyalarımızı nasıl otomatikleştirdiğimize dair bazı kullanım örnekleri göreceğiz.

Python'da Otomasyon Modülleri

Burada python benzeri bazı otomasyon modüllerini tartışacağız İşletim Sistemi, ALT İŞLEM, SHUTIL, DATETIME, SELENIUM vb. Bu modüller sistem komutlarını yürütmek için kullanılır ve sistem dizinlerini değiştirmek için de kullanılabilir. Bu modüller, sistemde görevleri gerçekleştirmeyi kolaylaştıran yerleşik işlevlere sahiptir.

işletim sistemi ve ALT İŞLEM modüller hemen hemen aynı amaç için kullanılır. Bu modüllerin yerleşik işlevlerinden bazıları aşağıda verilmiştir

benzer şekilde ŞÜTİL modül, sistemle etkileşime izin veren birçok fonksiyona sahiptir. Bu modülün bazı işlevleri aşağıda verilmiştir

DATETIME modül geçerli tarih ve saati bulmak için kullanılır. Ayrıca haftanın gününü ve diğer birçok şeyi bulmak için kullanılır. Bu modülü kullanarak görevimizi istediğimiz zaman ve tarihte planlayabiliriz. Aşağıdaki kullanım durumlarında, yalnızca geçerli tarih ve saati bulmak için kullanacağız.

SELENYUM Modül, web sitemize giriş sürecini otomatikleştirmek için kullanılır. Web sitemize otomatik olarak giriş yapabilir ve kullanarak güncelleyebiliriz SELENYUM modül. SELENYUM tarayıcılarla ilgili farklı görevleri gerçekleştirmek için kullanılan birçok yerleşik işleve sahiptir.

Python'da Sistem komutları nasıl çalıştırılır

Python'da sistem komutlarını kullanarak çalıştırabiliriz işletim sistemi ve ALT İŞLEM modüller. Python'da sistem komutunu çalıştırmak için sözdizimi aşağıdadır

işletim sistemi.sistem('komut')

VEYA

alt süreç.çağrı('komut')

Örneğin, geçerli dizindeki tüm dosya ve dizinleri listelemek istiyorsak, python betiğinde aşağıdaki komutu çalıştıracağız

işletim sistemi.sistem('ls')

VEYA

alt süreç.çağrı('ls')

Python ile Malzeme Nasıl Otomatikleştirilir

Python, zaman kazandıran birçok günlük görevi otomatikleştirmek için kullanılabilir. Burada, eşyalarımızı otomatikleştirmenin bazı kullanım durumlarını göreceğiz. İndirme dizinindeki dosyaların düzenlenmesini ve önemli dosyalarımızın yedeğini tutmayı tartışacağız.

İndirme Dizinindeki Dosyaları Düzenleme

Herhangi bir dosya türünü indirdiğimizde, varsayılan olarak İndirme dizinine gider. Herhangi bir dosya bulmamız gerektiğinde, İndirme dizininde karışık birçok dosya türü olduğu için soruna neden olabilir. Şimdi sistemi farklı dosya türlerinin (e.g. mp3, png, xls vb) farklı dizinlere girer. Tam kod aşağıda verilmiştir. Bu kod, her dosya türünü tek tek kontrol edecek ve ardından ilgili dizini oluşturacaktır. Bundan sonra dosyayı ilgili dizinlere taşıyacaktır (e.g… mp3 dosyası 'Audio' dizinine gidecek).

işletim sistemini içe aktar
şutil ithal etmek
tarih saatini içe aktar
1 iken:
#geçerli saat, dakika ve saniyenin hesaplanması
bugün = tarihsaat.tarih saat.bugün()
bugün = str(bugün)
current_hour = bugün[11:13]
akım_dakika = bugün[14:16]
current_sec = bugün[17:19]
# sistemin dosyaları saat 08:00'de düzenleyeceğinden emin olmak
current_hour == '08' ve current_minute == '00' ve current_sec == '00' ise:
# indirilecek dizini değiştirme
işletim sistemi.chdir("path_to_Download_directory")
# tüm dosya adlarını bir listeye kaydetme
dosyalar = işletim sistemi.listdir(os.getcwd())
dosyalarda dosya adı için:
# dizinleri yoksayma
işletim sistemi değilse.yol.isdir(dosya adı):
# mp3 dosyalarını seçme
Eğer '.mp3' dosya adında:
# yoksa 'Ses' dizini oluşturma
işletim sistemi değilse.yol.var ('Ses'):
işletim sistemi.mkdir('Ses')
# 'Ses' dizinindeki hareketli dosya
şutil.move(dosya adı, 'Ses')
# mp4 dosyalarını seçme
elif'.mp4' dosya adında:
# yoksa 'Video' dizini oluşturma
işletim sistemi değilse.yol.var('Video'):
işletim sistemi.mkdir('Video')
# 'Video' dizinindeki hareketli dosya
şutil.move(dosya adı, 'Video')
# pdf dosyalarını seçme
elif'.pdf' dosya adında:
# yoksa 'PDF' dizini oluşturma
işletim sistemi değilse.yol.var('PDF'):
işletim sistemi.mkdir('PDF')
# PDF dizininde dosya taşıma
şutil.taşı(dosya adı, 'PDF')
# jpg ve png dosyalarını seçme
elif'.jpg' dosya adında veya '.png' dosya adında:
# yoksa 'Resimler' dizini oluşturma
işletim sistemi değilse.yol.var('Resimler'):
işletim sistemi.mkdir('Resimler')
# 'Resimler' dizinindeki hareketli dosya
şutil.move(dosya adı, 'Resimler')
# excel dosyalarını seçme
elif'.xls' dosya adında:
# yoksa 'Excel' dizini oluşturma
işletim sistemi değilse.yol.var('Excel'):
işletim sistemi.mkdir('Excel')
# 'Excel' dizininde dosya taşıma
şutil.taşı(dosya adı, 'Excel')
# 'seçme.ppt' dosyaları
elif'.ppt' dosya adında:
# yoksa 'Power Point' dizini oluşturma
işletim sistemi değilse.yol.var('Güç Noktası'):
işletim sistemi.mkdir('Güç Noktası')
# 'Power Point' dizinindeki hareketli dosya
şutil.move(dosya adı, 'Power Point')
# 'seçme.dokümanlar dosyaları
elif'.docx' dosya adında:
# yoksa 'Word Dosyası' dizini oluşturma
işletim sistemi değilse.yol.var ('Kelime Dosyası'):
işletim sistemi.mkdir('Kelime Dosyası')
# 'Word File' dizininde dosya taşıma
şutil.move(dosya adı, 'Kelime Dosyası')

Öncelikle şimdiki zamanı farklı değişkenlere kaydedeceğiz, ardından saatin tam olarak '08:00' olup olmadığını kontrol edeceğiz. Program her gün saati kontrol edecek ve eğer saat '08:00' ise kodu çalıştıracak, ardından ana kod çalışacaktır. Ana kodda, Öncelikle dizinimizi İndirme dizini olarak değiştiriyoruz. Burada tüm dosya adlarını dosyalar adlı bir listeye kaydedeceğiz. Şimdi tüm dosyaları tek tek okuyacağız ve sadece dosyaları filtreleyeceğiz. Yalnızca dosyaları düzenleyeceğimiz için dizinleri görmezden geleceğiz.

Şimdi her dosya türünün mp3, mp4, jpg, pdf, xls, ppt ve docx olup olmadığını kontrol edeceğiz. Her dosya türünü kontrol ettikten sonra, ilgili dizinin var olup olmadığını kontrol edeceğiz. Örneğin, dosya mp3 ise, 'Audio' dizininin var olup olmadığını kontrol edeceğiz. İlgili dizin mevcut değilse, dizini oluşturacağız. Dizin oluşturduktan sonra dosyamızı o dizine taşıyacağız. Bu şekilde tüm dosyalar ilgili dizinlere taşınabilir.

Bu kod sürekli çalışacak ve saatin '08:00' olup olmadığını kontrol etmeye devam edecektir. Her gün '08:00'de dosyalar otomatik olarak düzenlenecektir. Bu kod, sisteminizi crontab kullanarak her başlattığınızda çalışacak şekilde programlanabilir. Crontab aşağıda açıklanmıştır.

Sistem komutlarını kullanarak dosyalarınızı otomatik olarak yedekleyin

Projenizle ilgili bir dizinde bazı önemli dosyalarınız var ve bir şekilde bazı dosyalar siliniyor. Sonra ne yapacaksın? Bu tür bir durumda, dosyalarınızın yedeğini oluşturmak önemlidir. Ancak dosyalarınızın yedeğini oluşturmak gerçekten sıkıcı ve zaman alıcı bir iş. Bu görev, bir python betiği yazılarak otomatik olarak yapılabilir. Bu görevi gerçekleştirmek için kod aşağıdadır. Bu kod, her dosyayı zip dosyasına dönüştürecek, ardından yoksa bir yedekleme dizini oluşturacaktır. Bundan sonra, zip dosyası yedekleme dizinine taşınacaktır.

işletim sistemini içe aktar
tarih saatini içe aktar
1 iken:
# şimdiki zamanı kaydetme
bugün = tarihsaat.tarih saat.bugün()
bugün= str(bugün)
current_hour = bugün[11:13]
akım_dakika = bugün[14:16]
current_sec = bugün[17:19]
# kodun tam olarak '08:00'de çalışacağından emin olmak
current_hour == '08' ve current_minute == '00' ve current_sec == '00' ise:
# dizini belgelere değiştirme
işletim sistemi.chdir('path_to_documents_directory')
# tüm dosya adlarını bir listeye kaydetme
dosyalar = işletim sistemi.listdir(os.getcwd())
# yoksa 'yedek' dizini oluşturma
işletim sistemi değilse.yol.var('yedekleme'):
işletim sistemi.mkdir('yedekleme')
dosyalarda dosya için:
# dizinleri yoksayma
işletim sistemi değilse.yol.isdir(dosya):
# boşluksuz bir dosya adı tanımlama
orijinal_adı = dosya
dosya = dosya.Bölünmüş(" ")
dosya_adı = "".katılmak(dosya)
# zip_filename tanımlama
zip_file_name = dosya_adı+".fermuar"
# dosyanın zaten yedekleme dizininde olup olmadığını kontrol etme
işletim sistemi değilse.yol.var('backup/'+zip_file_name):
# boşluksuz dosya adını değiştirme
işletim sistemi.yeniden adlandır(orijinal_adı, dosya_adı)
# sistem komutunu kullanarak zip dosyası oluşturma
işletim sistemi.system("zip "+zip_dosya_adı+" "+dosya_adı)
#sistem komutunu kullanarak zip dosyasını yedekleme dizinine taşıma
işletim sistemi.system("mv "+zip_file_name+" yedekleme")
# dosya adını orijinal adıyla değiştirme
işletim sistemi.yeniden adlandır(dosya_adı, orijinal_adı)

Öncelikle mevcut zamanı değişkenlere kaydedeceğiz ve ardından saatin '08:00' olup olmadığını kontrol edeceğiz. Zaman tam olarak '08:00' ise, ana komut dosyası çalışacaktır. Ana kodda öncelikle önemli dosyaların bulunduğu dizine gidiyoruz. Sonra tüm dosya adlarını bir listeye kaydederiz. Şimdi tüm zip dosyalarını kaydedeceğimiz bir 'yedekleme' dizini oluşturacağız. Bu dizin zaten mevcutsa, bunu görmezden geleceğiz. Şimdi her dosyayı okuyacağız ve bunların dosya olup olmadığını kontrol edeceğiz. Dizinler yok sayılacak ve dosyalar dikkate alınacaktır.

system komutunu kullanarak bir dosyanın zip dosyasını oluşturmak için öncelikle bu dosyayı boşluksuz olarak yeniden adlandıracağız, çünkü boşluklu bir dosya adı python betiği kullanılarak bir sistem komutu çalıştırıldığında her boşlukta farklı bir dosya olarak kabul edilir. Dosyanın adı 'orijinal_dosyaadı' değişkenine kaydedilir ve dosya boşluksuz olarak yeniden adlandırılır. Şimdi zip dosya adını dosyanın adıyla aynı şekilde ' uzantılı olarak tanımlayacağız.fermuar.

Bundan sonra, bu dosyayı sıkıştırmak için 'zip' sistem komutunu kullanacağız ve ardından bu zip dosyasını 'mv' sistem komutunu kullanarak 'yedekleme' dizinine taşıyacağız. Ardından, içinde boşluklar bulunan dosyayı orijinal adıyla yeniden adlandıracağız. Bu kod, sisteminizi crontab kullanarak başlattığınızda her seferinde otomatik olarak çalışacak şekilde programlanacaktır.

Crontab kullanarak bir komut dosyasını çalıştırmayı otomatikleştirin

Otomasyon scriptlerini yukarıda yazdık. Şimdi, sistemimiz yeniden başlatıldığında bu komut dosyalarını otomatik olarak çalıştırmak istiyoruz. Bunu yapmak için komut dosyamızı crontab'a ekliyoruz. Crontab'da görev eklemek için aşağıdaki adımları izleyin

Her şeyden önce, crontab dosyasını düzenlemek için aşağıdaki komutu yazın

ubuntu@ubuntu:~$ crontab -e

-e flag, crontab'ı düzenleme modunda açmak anlamına gelir. Şimdi crontab dosyasını açtıktan sonra, dosyanın sonunda aşağıdaki komutu kullanarak görevimizi bu dosyaya ekleyeceğiz

@reboot python /path/to/python/script

Bu, sisteminizi her başlattığınızda python betiğini otomatik olarak çalıştıracaktır.

Sonuç

Bu yazıda otomasyonun pratik hayattaki önemi anlatılmıştır. Bu makaleyi okuyarak, her gün yaptığınız basit görevlerinizi nasıl otomatikleştirebileceğiniz hakkında bir fikir edinirsiniz. Daha iyi ve kolay otomasyon için kesinlikle daha fazla python kütüphanesi ve işlevi aramalısınız.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...