• 0

Python Kullanarak Görevleri Otomatikleştirme ve Zamanlama

1 ay önce , Okuma süresi 6 dakika.

Python Kullanarak Görevleri Otomatikleştirme ve Zamanlama
Zamanlama ve Otomatikleştirme

Python, yorumlanmış, yüksek seviyeli, çapraz platformlu ve kullanımı kolay bir programlama dilidir. Şu anda, arka uç web geliştirme, yazılım geliştirme, yapay zeka, makine öğrenimi, veri işleme, görüntü işleme, otomasyon vb. Alanlarda kullanılan en güçlü programlama dillerinden biridir. Python programlama dilini kullanarak sistemimizdeki hemen hemen her şeyi otomatikleştirebiliriz. 

Neden Görevleri Otomatikleştirme

Gerçek hayatta çok zor olmayan ancak zaman alan bazı görevler vardır ve bu görevleri elle tamamlamak çok daha zor gelir. Örneğin, bir dizindeki yüzlerce dosyayı manuel olarak yeniden adlandırmak, bir dizindeki dosyaları düzenlemek, dosyalarınızın düzenli olarak yedeğini oluşturmak, vb. Bu görevler gerçekten zaman alır ve bu görevleri otomatikleştirerek bu kadar zaman kazanabilirsiniz. Pek çok benzer örnek var ve bunları otomatikleştirerek kolaylaştırabiliriz. Zaman kazanmak, verimliliği artırmak ve doğruluğu artırmak, görevleri otomatikleştirmenin ana nedenleridir.

Önemli Python Otomasyon Modülleri

Python'da çok sayıda otomasyon modülü var. Sistemimizdeki hemen hemen her şeyi otomatikleştirmek için bu modülleri kullanabiliriz. Dizinleri veya dosyaları vb. Oluşturmak veya silmek gibi sistemimizi değiştirmek için 'os' modülünü kullanabiliriz. Sistem komutları da bu modül kullanılarak çalıştırılabilir. 'Pyautogui', klavye ve fare ile ilgili görevleri otomatikleştirmek için kullanılan bir modüldür. Bu modülü kullanarak ekran çözünürlüğünü bulabilir, işaretçiyi belirli bir noktaya hareket ettirebilir, herhangi bir tuşa basabilir, hatta dosyaları sürükleyip bırakabiliriz. Benzer şekilde, zamanla ilgili hemen her şeyi manipüle etmek için 'zaman' modülünü kullanabiliriz. Tarih ve saati herhangi bir formata çevirip programımızda kullanabiliriz. 'PIL', görüntüleri python'da işlemek için kullanılan modüldür. 'PIL' modülünü kullanarak görüntüleri okuyabilir, kırpabilir, döndürebilir, çevirebilir ve boyutunu değiştirebiliriz. Bu modülü kullanarak bir görüntünün renk düzenini RGB'den siyah beyaza bile değiştirebiliriz. Bu makalede, yukarıdaki modüllerden bazılarını içerecek olan python kullanan bazı otomasyon kullanım durumlarını tartışacağız.

Son 30 Gün İçinde Erişilemeyen Dosyaları Otomatik Olarak Silme

İndirilenler dizininizde çok sayıda dosyanız olsun. Bazıları gerçekten önemli ve onlara her iki veya üç günde bir erişiyorsunuz ve bunların dışında bazıları gereksiz. Bu gereksiz dosyaları silmek istiyorsunuz. İndirilenler dizininde beş ila on dosyanız varsa, bu görev kolay olacak ve manuel olarak yapılabilir. Peki ya indirme dizininizde yüzlerce dosyanız varsa? Gereksiz dosyaları manuel olarak silmek çok zor ve zaman alan bir süreç olacaktır. Bu görevi otomatikleştirerek bu işlemi kolaylaştırabilirsiniz.

Bu görevi, son otuz gün boyunca erişilmeyen tüm dosyalar silinecek ve kalan dosyalar aynı kalacak şekilde otomatikleştireceğiz. Öncelikle terminalde aşağıdaki komutu yazarak python'u açın,

1 ubuntu@ubuntu:~$ python

Şimdi gerekli modülleri içe aktarın ve 'os' modülünü kullanarak indirme dizinine gidin

1 2 3 4 5 >>> #importing os module and time module >>> import time >>> import os >>> #moving to the downloads directory. Path to downloads directory will change depending upon your OS >>> os.chdir(‘/home/ubuntu/Downloads);

Şimdi, indirilenler dizininde bulunan tüm dosya ve klasörlerin bir listesini listeler adı verilen bir değişkene kaydedin.

           

1 2 >>> #saving a list of all the files and folders in a variable >>> files = os.listdir(os.getcwd());

Geçerli saati alın ve ayrıca otuz gün içindeki saniye sayısını bulun.

 

1 2 3 >>> #getting current time and number of seconds in thirty days >>> present_time = time.time() >>> days = 30*24*60*60

Şimdi her dosyanın bir dosya mı yoksa dizin mi olduğunu tek tek kontrol edeceğiz. Öğe bir dizin ise, üzerinde herhangi bir işlem yapmayacağız ve öğe bir dosya ise, en son ne zaman erişildiğini kontrol edeceğiz. Dosyaya son otuz gün içinde erişildiyse, dosya üzerinde herhangi bir işlem yapmayacağız, aksi takdirde onu sileceğiz.

 

1 2 3 4 5 6 7 8 9 10 11 >>> #applying for loop on ‘files’ variable >>> for file_name in files: . . .   #checking if the item is file or directory . . .   if not os.path.isdir(file_name): . . .     #getting last access time of file . . .     access_time = os.stat(file_name).st_atime . . .     #checking if the file was accessed within last 30 days . . .     if access_time < (present_time - days): . . .       #removing file which is not accessed for last 30 days . . .       os.remove(file_name) . . .       print(file_name + ‘ removed)

Yukarıdaki kod, çalıştırdığınızda, indirilenler dizinindeki tüm dosyaları otomatik olarak kontrol edecek ve son otuz gün boyunca erişilemeyen dosyaları kaldıracaktır.

NOT: Kaldırılan dosyalar geri dönüşüm kutusuna gitmeyeceği ve dolayısıyla geri yüklenemeyeceği için bu işlevi dikkatli kullanın.

Python'da Sistem Komutlarını Kullanarak İndirme Dizininde Dosyaları Düzenleme

Makalenin bu bölümünde başka bir görevi otomatikleştireceğiz ve bu görev için python'un komutlarını kullanmak yerine python'da sistem komutlarını kullanacağız. Ubuntu'nun sistem komutlarını kullanacağız ve Windows işletim sistemi kullanıyorsanız bazı komutlar biraz farklı olacaktır.

İndirme dizininizde çok sayıda dosyanız olsun ve onları aynı uzantıya sahip tüm dosyalar (.pdf .docx vb.) Tek bir dizine gidecek şekilde düzenlemek istiyorsunuz. Terminalde aşağıdaki komutu yazarak python'u açın,

 

1 ubuntu@ubuntu:~$ python

Öncelikle gerekli modülü içe aktarın ve indirme dizinine gidin,

 

1 2 3 4 >>> #importing required module >>> import os >>> #moving to Downloads directory >>> os.chdir(‘/home/ubuntu/Downloads)

Şimdi tüm dosya ve dizinleri 'dosyalar' adlı bir listeye not edin

 

1 2 >>> #saving the names of all the files and directories >>> files = os.listdir(os.getcwd())

Şimdi her öğenin bir dosya mı yoksa dizin mi olduğunu kontrol edin. Tüm dizinleri atlayın ve her dosya için uzantıyı kontrol edin ve ilgili dizine taşıyın. İlgili dizin mevcut değilse, bir dizin oluşturun ve ardından dosyayı dizine taşıyın

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >>> #checking each file >>> for file_name in files: . . .  #checking if item is not directory . . .  if not os.path.isdir(file_name): . . .    #checking if file is pdf . . .    if file_name.endswith(.pdf): . . .      #checking if pdf directory does not exist . . .      if not os.path.isdir(pdf): . . .        #creating pdf directory using system command . . .        os.system(mkdir pdf) . . .      #moving pdf file to pdf directory using system command . . .      os.system(mv ’+file_name+’ ./pdf/’) . . .    #checking if file is png . . .    elif file_name.endswith(.png): . . .      #checking if images directory exists . . .      if not os.path.isdir(images): . . .        #creating images directory using system command . . .        os.system(mkdir images) . . .      #moving png file to images folder using system command . . .      os.system(mv ‘+file_name+’ ./images/’)

 

Crontab Kullanarak Python Komut Dosyalarını Planlama

Şimdiye kadar python kullanarak bazı görevleri otomatikleştirmek için komut dosyaları yazdık. Şimdi python komut dosyalarını otomatik olarak yürütmeye ne dersiniz? Python betikleri otomatik olarak çalıştırılmayacak, onları manuel olarak yürütmemiz gerekecek. Python betiklerini crontab kullanarak belirli bir süre sonra otomatik olarak yürütülecek şekilde programlayabiliriz.

Bu python komut dosyalarının her hafta otomatik olarak çalışmasını istiyorsak, crontab kullanarak aşağıdaki gibi planlayacağız. Terminalde aşağıdaki komutu yazarak crontab'i düzenleme modunda açın,

 

1 ubuntu@ubuntu:~$ crontab -e

Bir dosya açacak ve aşağıdaki satırı dosyanın altına koyacaktır.

 

1 0 0 * * 0 python [path_to_python_script]

Yukarıdaki satırdaki ilk giriş dakikalar içindir ve 0 ila 59 arasında değişir. İkinci giriş, 0 ila 23 arasında değişen saatler içindir. Üçüncü giriş, ayın gününü tanımlamak için kullanılır ve aralığı 1 ila 31. Dördüncü girdi ayı belirtmek için kullanılır ve aralığı 1'den 12'ye kadardır. Ay için JAN, FEB vb. De kullanabiliriz. Beşinci ve son giriş haftanın gününü tanımlamak için kullanılır ve aralığı Pazar 0 olmak üzere 0 ile 6 arasındadır. SAT, SUN vb. Gibi günün kısa adlarını kullanarak da haftanın gününü belirtebiliriz. .

Bu girişlerden sonra çalıştırmak istediğimiz komuta gelir. Bu durumda, python komut dosyalarımızı planlamak istiyoruz, böylece yukarıdaki komutu çalıştıracağız.

Görevlerinizi otomatikleştirmek ve planlamak, zamandan tasarruf ederek ve verimliliği artırarak hayatı kolaylaştırabilir. Bu makalede, python kullanarak görevleri otomatikleştirmenin farklı kullanım durumlarını kullandık. Bu makalede iki otomasyon örneğini tartıştık, ancak bu bilgiyi diğer bazı görevleri otomatikleştirmek için kullanabilirsiniz. Her şey değil ama bir programlama dili kullanarak otomasyon fikrini edinebilirsiniz. Ayrıca python'daki sistem komutlarını kullanarak her şeyi otomatikleştirebilirsiniz.

 

#Yazılım #python