Bagaimana untuk mengautomasikan Tugas dengan Skrip Python

Bagaimana Untuk Mengautomasikan Tugas Dengan Skrip Python



Pengaturcara, pengekod dan pembangun boleh mengautomasikan kaedah menggunakan skrip Python, menjimatkan masa dan usaha yang penting dengan menjalankan operasi berulang. Python ialah bahasa komputer, seperti Java, yang berfungsi dengan baik dalam automasi proses. Berbanding dengan bahasa lain, ia agak mudah dipelajari. Ia juga mempunyai komuniti yang besar, bertenaga dan perpustakaan terbina dalam untuk mengautomasikan tugasan tertentu.

Memasang Python

Sebelum anda mula mengautomasikan tugas, pasang Python pada komputer atau sistem. Untuk memasang Python, anda mesti melawati laman web rasmi Python terlebih dahulu. Pastikan anda menambah Python pada PATH sistem semasa pemasangan.







  1. Pilih IDE atau Editor Teks

Mana-mana editor teks boleh digunakan untuk membina skrip Python. Namun, Persekitaran Pembangunan Bersepadu (IDE), termasuk PyCharm, Kod Visual Studio atau Buku Nota Jupyter, boleh menambah baik proses dengan alatan seperti sorotan sintaks dan penyahpepijatan. Walau bagaimanapun, kami menggunakan Notepad++ dalam artikel ini.



  1. Tentukan Tugasan yang Perlu Diautomatikkan

Ini boleh melibatkan apa sahaja daripada menghantar e-mel pukal, membuat laporan, memuat turun fail dan membuat sandaran.



  1. Menyelidik Perpustakaan dan Fungsi

Lihat fungsi dan perpustakaan yang boleh mengautomasikan subtugas.





  1. Tulis Skrip dalam Python

Di sinilah kami mengumpulkan semua kepingan untuk mencipta skrip kerja yang lengkap.

  1. Tugasan

Automatikkan penjanaan laporan daripada data yang disimpan dalam hamparan.



  1. Skrip Python

Kita boleh menggunakan skrip Python untuk membaca data daripada hamparan dan menjana laporan dalam pelbagai format seperti PDF, HTML atau CSV. Selain itu, skrip boleh digunakan untuk mengedarkan laporan secara automatik kepada pihak berkepentingan melalui e-mel atau Slack.

Ia mengambil beberapa langkah untuk membuat laporan menggunakan data hamparan. Kami akan memberi anda skrip Python ringkas yang menggunakan pustaka Pandas untuk membaca data daripada hamparan Excel dan membuat laporan CSV. Ingat bahawa kami mungkin membina skrip ini untuk menghasilkan laporan yang lebih rumit dalam format lain dan mengautomasikan e-mel atau pemberitahuan Slack seperti yang diperlukan.

Pasang Perpustakaan yang Diperlukan

Sebelum menjalankan skrip, kami perlu memasang pustaka Pandas jika ia belum dipasang lagi:

pip pasang panda openpyxl

Kod Python mempunyai fungsi yang dipanggil generate_report() yang mengambil dua hujah: laluan ke hamparan Excel yang mengandungi data gaji pekerja dan laluan ke fail CSV tempat laporan harus disimpan.

Fungsi pertama membaca hamparan Excel ke dalam objek Pandas DataFrame. Kemudian, ia melakukan pemprosesan dan analisis data mengikut keperluan. Jumlah lajur 'Gaji' dikira dalam keadaan ini oleh fungsi.

Seterusnya, fungsi mencipta rentetan laporan yang mengandungi jumlah gaji semua pekerja. Akhirnya, fungsi menyimpan laporan ke fail CSV.

Fungsi utama kod menentukan fail input Excel dan fail laporan output dan kemudian memanggil fungsi generate_report() untuk mencipta laporan.

GenReport.py:
import panda sebagai pd_obj
def generate_report ( emp_gaji_data, emp_gaji_laporan_fail ) :
cuba:
# Baca data daripada hamparan Excel
df_obj = pd_obj.read_excel ( emp_gaji_data )
# Lakukan pemprosesan dan analisis data mengikut keperluan
# Untuk kesederhanaan, mari kita andaikan kita ingin mengira jumlah lajur
gaji_jumlah = df_obj [ 'Gaji' ] .jumlah ( )
# Buat laporan
laporan_gaji = f 'Jumlah Semua Gaji Pekerja: {salary_total}'
# Simpan laporan ke fail CSV
dengan terbuka ( fail_laporan_gaji, 'Dalam' ) sebagai csv_obj:
csv_obj.write ( laporan_gaji )

cetak ( f 'Laporan dijana dan disimpan ke {emp_salary_report_file}' )
kecuali Pengecualian sebagai cth:
cetak ( f 'Ralat berlaku: {str(e)}' )
jika __nama__ == '__utama__' :
# Tentukan fail input Excel dan fail laporan output
emp_gaji_data = 'input_employee_data.xlsx'
fail_laporan_gaji = 'gaji_sum.csv'
# Panggil fungsi generate_report untuk membuat laporan
jana_laporan ( emp_gaji_data, emp_gaji_laporan_fail )

Berikut ialah data dalam fail pekerja input:

Uji Skrip

Kita mesti menguji skrip secara meluas selepas ia ditulis untuk memastikan ia berfungsi seperti yang dimaksudkan. Kami menggunakan pengkompil Python untuk menguji fail yang kami automasi. Dalam kes ini, fail ini berjaya menjana dan menyimpan laporan dalam fail CSV.

Jadualkan atau Cetuskan Skrip

Bergantung pada keperluan automasi, kami boleh melaksanakan skrip Python dalam pelbagai cara:

  • Pelaksanaan Manual: Jalankan skrip secara manual dengan melaksanakannya dalam IDE atau melalui baris arahan menggunakan arahan berikut: python GenerateReport.py .
  • Tugas Berjadual (Windows): Kami boleh menjalankan skrip pada masa atau selang waktu tertentu menggunakan Penjadual Tugas Windows. Menggunakan Perkhidmatan Windows, kami juga boleh menggunakan acara tertentu.
  • Cron Jobs (Linux/macOS): Kami boleh menggunakan tugas cron untuk menjadualkan skrip dijalankan pada masa tertentu pada sistem seperti Unix.
  • Didorong Peristiwa: Kami boleh mencetuskan skrip anda sebagai tindak balas kepada peristiwa tertentu, seperti perubahan fail, menggunakan perpustakaan seperti pengawas atau dengan menyepadukan dengan webhooks.

Mengautomasikan Sandaran MySQL Menggunakan Python

Untuk mengautomasikan proses sandaran pelayan MySQL mengikut jadual setiap jam, kami boleh menggunakan Python dalam kombinasi dengan perpustakaan 'mysqlclient' untuk menyambung ke pangkalan data MySQL dan membuat sandaran, dan kami boleh menggunakan penjadual tugas seperti Cron (pada Unix-based sistem) untuk menjalankan skrip Python pada selang waktu setiap jam. Berikut ialah skrip Python yang boleh anda gunakan untuk tujuan ini:

Langkah 1: Pasang Perpustakaan yang Diperlukan

Kami perlu memasang perpustakaan 'mysqlclient' untuk sambungan MySQL. Kami boleh memasangnya menggunakan pip:

Pip pasang mysqlcient

pip pasang configparser

Langkah 2: Cipta Fail Konfigurasi

Cipta fail teks (cth., mysqlconfig.ini) untuk menyimpan maklumat sambungan MySQL anda, termasuk kata laluan. Berikut ialah contoh rupa fail 'mysqlconfig.ini':

[ mysql ]
mySQL_DB_HOST = localhost
mySQL_DB_USERNAME = akar
mySQL_DB_PASSWORD = 1234
mySQL_DB_DATABASE_NAME = brandsw9_data

Langkah 3: Sahkan Direktori Bin MySQL :

Perintah 'mysqldump' harus terletak dalam direktori bin MySQL. Sahkan bahawa PATH sistem termasuk direktori bin. Kami boleh mengubah suai pembolehubah persekitaran PATH untuk memasukkan lokasi tong MySQL.

Pada Windows: Kami boleh mengedit PATH sistem dengan menerokai 'Pembolehubah Persekitaran' dalam menu 'Mula' dan menambah direktori tong MySQL (cth., C:\Program Files\MySQL\MySQL Server X.X\bin) pada pembolehubah PATH.

Langkah 3: Tulis Skrip Python

Cipta skrip Python, cth., MySQLBackup.py, untuk mengautomasikan proses sandaran MySQL. Gantikan ruang letak dengan butiran sambungan pangkalan data dan laluan fail seperti yang diperlukan.

subproses import sebagai sp
dari datetime import datetime sebagai dt_obj
import configparser sebagai mysql_confg
# Butiran sambungan pangkalan data MySQL
# Muatkan butiran sambungan MySQL daripada fail konfigurasi
config_obj = mysql_confg.ConfigParser ( )
config_obj.read ( 'mysqlconfig.ini' ) # Laraskan laluan jika perlu
mySQL_DB_HOST = config_obj.get ( 'mysql' , 'mySQL_DB_HOST' )
mySQL_DB_USERNAME = config_obj.get ( 'mysql' , 'mySQL_DB_USERNAME' )
mySQL_DB_PASSWORD = config_obj.get ( 'mysql' , 'mySQL_DB_PASSWORD' )
mySQL_DB_DATABASE_NAME = config_obj.get ( 'mysql' , 'mySQL_DB_DATABASE_NAME' )
# Direktori sandaran
bk_dir = 'backup_directory/'
# Dapatkan tarikh dan masa semasa untuk nama fail sandaran
cap masa = dt_obj.now ( ) .strftime ( '%Y%m%d%H%M%S' )
# Tentukan nama fail sandaran
my_sql_bk = f 'backup_{timestamp_oj}.sql'
# Perintah pembuangan MySQL
mysql_dump_cmd = f 'mysqldump -h {mySQL_DB_HOST} -u {mySQL_DB_USERNAME} -p{mySQL_DB_PASSWORD} {mySQL_DB_DATABASE_NAME} > {bk_dir}{my_sql_bk}'

cuba:
# Jalankan arahan dump MySQL untuk membuat sandaran
sp.lari ( mysql_dump_cmd, cangkerang =Benar, semak =Benar )
cetak ( f 'Sandaran selesai dan disimpan sebagai '{my_sql_bk}' dalam '{bk_dir}'' )
kecuali sp.CalledProcessError sebagai Ia adalah:
cetak ( f 'Ralat membuat sandaran: {str(e)}' )

Langkah 4: Uji dan Laksanakan Kod

Langkah 5: Jadualkan Skrip dengan Penjadual Tugas Windows

Sekarang, mari kita jadualkan skrip Python untuk dijalankan secara automatik menggunakan Penjadual Tugas Windows:

Lancarkan Windows Task Scheduler dengan menaip 'Task Scheduler' ke dalam bar carian menu 'Start' atau dengan menaip 'taskschd.msc' ke dalam kotak dialog 'Run' (Win + R).

Pilih 'Perpustakaan Penjadual Tugas' dari anak tetingkap kiri Penjadual Tugas.

Di anak tetingkap kanan, klik pada 'Buat Tugasan Asas ...' untuk membuka 'Buat Wizard Tugas Asas'.

Masukkan nama tugas dan huraian. Kemudian, tekan 'Seterusnya'.

Pilih 'Harian' sebagai jenis pencetus (walaupun anda mahu menjalankannya setiap jam, ini membolehkan anda menetapkan selang ulangan). Kemudian, klik pada 'Seterusnya'.

Tentukan tarikh dan masa mula untuk tugas sandaran.

Pilih 'Ulang tugasan setiap:' dan tetapkannya kepada 1 jam.

Tetapkan tempoh kepada '1 hari'. Kemudian, klik pada 'Seterusnya'.

Pilih 'Mulakan program' dan kemudian tekan 'Seterusnya'.

Semak imbas dan pilih Python boleh laku (python.exe) dengan mengklik pada 'Semak imbas'.

Semak imbas dan pilih Python boleh laku (python.exe) dengan mengklik pada 'Semak imbas'.

Masukkan laluan penuh ke skrip Python anda (cth., C:\path\to\mysql_backup.py) dalam medan 'Tambah argumen'.

Masukkan direktori yang mengandungi skrip Python anda (cth., C:\path\to\) dalam medan 'Mula dalam (pilihan)'.

Klik pada 'Seterusnya.'

Semak tetapan tugasan dan klik pada 'Selesai' untuk membuat tugasan.

Kesimpulan

Kami boleh membina skrip automasi yang boleh dipercayai dan berkesan yang mengurangkan masa aliran kerja dan menumpukan pada aktiviti yang lebih penting dengan menggunakan alatan Python dan amalan terbaiknya. Kami menyediakan beberapa contoh yang pasti akan membantu anda mengautomasikan tugas anda menggunakan skrip Python.