国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

10個(gè)常用python自動化腳本

這篇具有很好參考價(jià)值的文章主要介紹了10個(gè)常用python自動化腳本。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

大家好,Python憑借其簡單和通用性,能夠?yàn)榻鉀Q每天重復(fù)同樣的工作提供最佳方案。本文將探索10個(gè)Python腳本,這些腳本可以幫助自動化完成任務(wù),提高工作效率。無論是開發(fā)者、數(shù)據(jù)分析師還是僅僅想簡化工作流程的普通用戶,這些腳本都能提供幫助。

1. 自動化文件管理

1.1 排序目錄中的文件

#?Python腳本,用于根據(jù)文件擴(kuò)展名對目錄中的文件進(jìn)行排序
import?os
from?shutil?import?move

def?sort_files(directory_path):
??for?filename?in?os.listdir(directory_path):
????if?os.path.isfile(os.path.join(directory_path,?filename)):
??????file_extension?=?filename.split('.')[-1]
??????destination_directory?=?os.path.join(directory_path,?file_extension)??
??????if?not?os.path.exists(destination_directory):
????????os.makedirs(destination_directory)
??????move(os.path.join(directory_path,?filename),?os.path.join(destination_directory,?filename))

根據(jù)文件擴(kuò)展名將文件分類到子目錄中,來組織目錄中的文件。它識別文件擴(kuò)展名并將文件移動到適當(dāng)?shù)淖幽夸浿?,這對于整理下載文件夾或組織特定項(xiàng)目的文件非常有用。?

1.2 刪除空文件夾

#?Python腳本,用于刪除目錄中的空文件夾
import?os

def?remove_empty_folders(directory_path):
??for?root,?dirs,?files?in?os.walk(directory_path,?topdown=False):
????for?folder?in?dirs:
??????folder_path?=?os.path.join(root,?folder)
??????if?not?os.listdir(folder_path):
????????os.rmdir(folder_path)

腳本用于在指定目錄中搜索和刪除空文件夾,維護(hù)干凈整潔的文件夾結(jié)構(gòu),特別是在處理大量數(shù)據(jù)集時(shí)。

1.3 批量重命名文件

#?Python腳本,用于批量重命名目錄中的文件
import?os

def?rename_files(directory_path,?old_name,?new_name):
??for?filename?in?os.listdir(directory_path):
????if?old_name?in?filename:
??????new_filename?=?filename.replace(old_name,?new_name)
??????os.rename(os.path.join(directory_path,?filename),?os.path.join(directory_path,?new_filename))

腳本允許同時(shí)批量重命名目錄中的多個(gè)文件。它以舊名稱和新名稱作為輸入,并將所有匹配的文件中的舊名稱替換為新名稱。

2. 使用Python進(jìn)行網(wǎng)頁抓取

2.1 從網(wǎng)站中提取數(shù)據(jù)

#?使用Python進(jìn)行網(wǎng)頁抓取的腳本,以從網(wǎng)站中提取數(shù)據(jù)
import?requests
from?bs4?import?BeautifulSoup

def?scrape_data(url):
??response?=?requests.get(url)
??soup?=?BeautifulSoup(response.text,?'html.parser')
??#?在此處編寫代碼,從網(wǎng)站中提取相關(guān)數(shù)據(jù)

腳本利用requests和BeautifulSoup庫來抓取網(wǎng)站的數(shù)據(jù)。它獲取網(wǎng)頁內(nèi)容并使用BeautifulSoup解析HTML,可以自定義該腳本以提取諸如標(biāo)題、產(chǎn)品信息或價(jià)格等特定數(shù)據(jù)。?

2.2 批量下載圖片

#?Python腳本,用于從網(wǎng)站批量下載圖片
import?requests

def?download_images(url,?save_directory):
??response?=?requests.get(url)
??if?response.status_code?==?200:
????images?=?response.json()?#?假設(shè)API返回圖片URL的JSON數(shù)組
????for?index,?image_url?in?enumerate(images):
??????image_response?=?requests.get(image_url)
??????if?image_response.status_code?==?200:
????????with?open(f"{save_directory}/image_{index}.jpg",?"wb")?as?f:
??????????f.write(image_response.content)

腳本旨在從網(wǎng)站批量下載圖片,它假設(shè)該網(wǎng)站提供一個(gè)返回圖片URL數(shù)組的JSON API。該腳本然后遍歷這些URL并下載圖片,將其保存到指定的目錄中。?

2.3 自動提交表單

#?Python腳本,用于自動在網(wǎng)站上提交表單
import?requests

def?submit_form(url,?form_data):
??response?=?requests.post(url,?data=form_data)
??if?response.status_code?==?200:
????#?在此處編寫代碼以處理表單提交后的響應(yīng)

腳本使用POST請求以表單數(shù)據(jù)自動在網(wǎng)站上提交表單,可以通過提供URL和要提交的表單數(shù)據(jù)來自定義該腳本。

3. 文本處理和操作

3.1 統(tǒng)計(jì)文本文件中的單詞數(shù)

#?Python腳本,用于統(tǒng)計(jì)文本文件中的單詞數(shù)

def?count_words(file_path):
??with?open(file_path,?'r')?as?f:
????text?=?f.read()
????word_count?=?len(text.split())
??return?word_count

腳本讀取文本文件并統(tǒng)計(jì)其中包含的單詞數(shù),可以用于快速分析文本文檔的內(nèi)容,或跟蹤寫作項(xiàng)目中的字?jǐn)?shù)。

3.2 查找和替換文本

#?Python腳本,用于在文件中查找和替換文本

def?find_replace(file_path,?search_text,?replace_text):
??with?open(file_path,?'r')?as?f:
????text?=?f.read()
????modified_text?=?text.replace(search_text,?replace_text)
??with?open(file_path,?'w')?as?f:????
????f.write(modified_text)

腳本在文件中搜索特定文本并將其替換為所需文本,它對批量替換大型文本文件中的某些短語或更正錯(cuò)誤非常有用。

3.3 生成隨機(jī)文本

#?Python腳本,用于生成隨機(jī)文本

import?random
import?string

def?generate_random_text(length):
??letters?=?string.ascii_letters?+?string.digits?+?string.punctuation??
??random_text?=?''.join(random.choice(letters)?for?i?in?range(length))
??return?random_text

腳本生成指定長度的隨機(jī)文本,可用于測試和模擬目的,甚至作為創(chuàng)作的隨機(jī)內(nèi)容源。

4. 自動發(fā)送電子郵件

4.1 發(fā)送個(gè)性化電子郵件

#?Python腳本,用于向收件人列表發(fā)送個(gè)性化電子郵件

import?smtplib
from?email.mime.text?import?MIMEText
from?email.mime.multipart?import?MIMEMultipart

def?send_personalized_email(sender_email,?sender_password,?recipients,?subject,?body):

??server?=?smtplib.SMTP('smtp.gmail.com',?587)
??server.starttls()
??server.login(sender_email,?sender_password)

??for?recipient_email?in?recipients:
????message?=?MIMEMultipart()??
????message['From']?=?sender_email
????message['To']?=?recipient_email
????message['Subject']?=?subject??
????message.attach(MIMEText(body,?'plain'))
????server.sendmail(sender_email,?recipient_email,?message.as_string())

??server.quit()

腳本能夠向收件人列表發(fā)送個(gè)性化電子郵件,可以自定義發(fā)件人的電子郵件、密碼、主題、正文以及收件人列表。請注意,出于安全考慮,使用Gmail時(shí)應(yīng)使用應(yīng)用專用密碼。

4.2 發(fā)送帶附件的電子郵件

#?Python腳本,用于發(fā)送帶有附件的電子郵件

import?smtplib
from?email.mime.multipart?import?MIMEMultipart
from?email.mime.base?import?MIMEBase
from?email?import?encoders

def?send_email_with_attachment(sender_email,?sender_password,?recipient_email,?subject,?body,?file_path):

??server?=?smtplib.SMTP('smtp.gmail.com',?587)
??server.starttls()
??server.login(sender_email,?sender_password)

??message?=?MIMEMultipart()
??message['From']?=?sender_email
??message['To']?=?recipient_email
??message['Subject']?=?subject

??message.attach(MIMEText(body,?'plain'))

??with?open(file_path,?"rb")?as?attachment:
????part?=?MIMEBase('application',?'octet-stream')
????part.set_payload(attachment.read())
????encoders.encode_base64(part)
????part.add_header('Content-Disposition',?f"attachment;?filename=?{file_path}")
????message.attach(part)

??server.sendmail(sender_email,?recipient_email,?message.as_string())
??server.quit()

腳本允許發(fā)送帶有附件的電子郵件,只需提供發(fā)件人的電子郵件、密碼、收件人的電子郵件、主題、正文以及要附加的文件的路徑即可。

4.3 自動電子郵件提醒

#?Python腳本,用于發(fā)送自動電子郵件提醒

import?smtplib??
from?email.mime.text?import?MIMEText
from?datetime?import?datetime,?timedelta

def?send_reminder_email(sender_email,?sender_password,?recipient_email,?subject,?body,?reminder_date):

??server?=?smtplib.SMTP('smtp.gmail.com',?587)
??server.starttls()
??server.login(sender_email,?sender_password)

??now?=?datetime.now()
??reminder_date?=?datetime.strptime(reminder_date,?'%Y-%m-%d')

??if?now.date()?==?reminder_date.date():

????message?=?MIMEText(body,?'plain')
????message['From']?=?sender_email??
????message['To']?=?recipient_email
????message['Subject']?=?subject

????server.sendmail(sender_email,?recipient_email,?message.as_string())

??server.quit()

腳本基于指定日期發(fā)送自動電子郵件提醒,對設(shè)置重要任務(wù)或事件的提醒非常有用,確保不會錯(cuò)過最后期限。

5. 自動化Excel電子表格

5.1 讀寫Excel

#?Python腳本,用于讀寫Excel電子表格中的數(shù)據(jù)

import?pandas?as?pd

def?read_excel(file_path):
??df?=?pd.read_excel(file_path)
??return?df

def?write_to_excel(data,?file_path):
??df?=?pd.DataFrame(data)
??df.to_excel(file_path,?index=False)?

腳本使用pandas庫從Excel電子表格中讀取數(shù)據(jù)并將數(shù)據(jù)寫入新的Excel文件。它允許以編程方式處理Excel文件,從而提高數(shù)據(jù)操作和分析的效率。

5.2 數(shù)據(jù)分析和可視化

#?使用pandas和matplotlib進(jìn)行數(shù)據(jù)分析和可視化的Python腳本

import?pandas?as?pd
import?matplotlib.pyplot?as?plt

def?analyze_and_visualize_data(data):

??#?在此處編寫數(shù)據(jù)分析和可視化的代碼

??pass

腳本使用pandas和matplotlib庫執(zhí)行數(shù)據(jù)分析和可視化,能夠探索數(shù)據(jù)集、洞察數(shù)據(jù)以及創(chuàng)建數(shù)據(jù)的可視化表示。

5.3 合并多個(gè)表格

#?Python腳本,用于將多個(gè)Excel表合并為一個(gè)表

import?pandas?as?pd

def?merge_sheets(file_path,?output_file_path):

??xls?=?pd.ExcelFile(file_path)
??df?=?pd.DataFrame()

??for?sheet_name?in?xls.sheet_names:
????sheet_df?=?pd.read_excel(xls,?sheet_name)
????df?=?df.append(sheet_df)
??
??df.to_excel(output_file_path,?index=False)

腳本合并Excel文件中多個(gè)表的數(shù)據(jù)到一個(gè)表中,當(dāng)數(shù)據(jù)分布在不同的表中,但想進(jìn)行匯總以進(jìn)行進(jìn)一步分析時(shí),會很方便。

6. 與數(shù)據(jù)庫交互

6.1 連接數(shù)據(jù)庫

#?Python腳本,用于連接數(shù)據(jù)庫并執(zhí)行查詢

import?sqlite3

def?connect_to_database(database_path):
??connection?=?sqlite3.connect(database_path)
??return?connection

def?execute_query(connection,?query):
??cursor?=?connection.cursor()
??cursor.execute(query)
??result?=?cursor.fetchall()
??return?result

腳本允許連接SQLite數(shù)據(jù)庫并執(zhí)行查詢,使用適當(dāng)?shù)腜ython數(shù)據(jù)庫驅(qū)動程序,可以將其修改為使用其他數(shù)據(jù)庫管理系統(tǒng)(如MySQL或PostgreSQL)。

6.2 執(zhí)行SQL查詢

#?Python腳本,用于在數(shù)據(jù)庫上執(zhí)行SQL查詢

import?sqlite3

def?execute_query(connection,?query):

??cursor?=?connection.cursor()
??cursor.execute(query)??
??result?=?cursor.fetchall()

??return?result

腳本是一個(gè)通用函數(shù),用于在數(shù)據(jù)庫上執(zhí)行SQL查詢。可以將查詢作為參數(shù)傳遞給該函數(shù)以及數(shù)據(jù)庫連接對象,它將返回查詢的結(jié)果。

6.3 數(shù)據(jù)備份和恢復(fù)

import?shutil

def?backup_database(database_path,?backup_directory):
??shutil.copy(database_path,?backup_directory)?

def?restore_database(backup_path,?database_directory):
??shutil.copy(backup_path,?database_directory)??

腳本允許創(chuàng)建數(shù)據(jù)庫的備份并在需要時(shí)進(jìn)行恢復(fù),是防止寶貴數(shù)據(jù)意外丟失的預(yù)防措施。

7. 自動化系統(tǒng)任務(wù)

7.1 管理系統(tǒng)進(jìn)程

#?Python腳本,用于管理系統(tǒng)進(jìn)程

import?psutil

def?get_running_processes():

??return?[p.info?for?p?in?psutil.process_iter(['pid',?'name',?'username'])]

def?kill_process_by_name(process_name):

??for?p?in?psutil.process_iter(['pid',?'name',?'username']):
????if?p.info['name']?==?process_name:
??????p.kill()

腳本使用psutil庫來管理系統(tǒng)進(jìn)程,允許檢索運(yùn)行進(jìn)程的列表并通過名稱終止指定的進(jìn)程。

7.2 使用Cron安排任務(wù)

#?Python腳本,用于使用cron語法安排任務(wù)

from?crontab?import?CronTab

def?schedule_task(command,?schedule):

??cron?=?CronTab(user=True)
??job?=?cron.new(command=command)
??job.setall(schedule)
??cron.write()

腳本利用crontab庫使用cron語法來調(diào)度任務(wù),支持以正則間隔或特定時(shí)間自動執(zhí)行特定命令。

7.3 監(jiān)控磁盤空間

#?Python腳本,用于監(jiān)控磁盤空間并在空間不足時(shí)發(fā)送警告

import?psutil

def?check_disk_space(minimum_threshold_gb):

??disk?=?psutil.disk_usage('/')
??free_space_gb?=?disk.free?/?(2**30)?#?將字節(jié)轉(zhuǎn)換為GB

??if?free_space_gb?<?minimum_threshold_gb:
????
????#?在此處編寫代碼以發(fā)送警告(電子郵件、通知等)

????pass

腳本監(jiān)視系統(tǒng)上的可用磁盤空間,如果低于指定閾值則發(fā)送警告,這對于磁盤空間的積極管理和避免因磁盤空間不足導(dǎo)致的數(shù)據(jù)丟失非常有用。

8. 網(wǎng)絡(luò)自動化

8.1 檢查網(wǎng)站狀態(tài)

#?Python腳本,用于檢查網(wǎng)站狀態(tài)

import?requests

def?check_website_status(url):

??response?=?requests.get(url)

??if?response.status_code?==?200:

????#?在此處編寫代碼以處理成功的響應(yīng)

??else:

????#?在此處編寫代碼以處理不成功的響應(yīng)

腳本通過向提供的URL發(fā)送HTTP GET請求來檢查網(wǎng)站的狀態(tài),有助于監(jiān)控網(wǎng)站的可用性及其響應(yīng)代碼。

8.2 自動化FTP傳輸

#?Python腳本,用于自動化FTP文件傳輸

from?ftplib?import?FTP??

def?ftp_file_transfer(host,?username,?password,?local_file_path,?remote_file_path):

??with?FTP(host)?as?ftp:
????ftp.login(user=username,?passwd=password)
????with?open(local_file_path,?'rb')?as?f:
??????ftp.storbinary(f'STOR?{remote_file_path}',?f)

腳本使用FTP協(xié)議自動化文件傳輸,連接到FTP服務(wù)器,使用提供的憑據(jù)登錄,并將本地文件上傳到指定的遠(yuǎn)程位置。

8.3 網(wǎng)絡(luò)設(shè)備配置

#?Python腳本,用于自動化網(wǎng)絡(luò)設(shè)備配置

from?netmiko?import?ConnectHandler

def?configure_network_device(host,?username,?password,?configuration_commands):

??device?=?{
????'device_type':?'cisco_ios',??
????'host':?host,
????'username':?username,
????'password':?password,
??}

??with?ConnectHandler(device)?as?net_connect:
????net_connect.send_config_set(configuration_commands)

腳本使用netmiko庫自動配置網(wǎng)絡(luò)設(shè)備,如思科路由器和交換機(jī),可以提供一系列配置命令,腳本將在目標(biāo)設(shè)備上執(zhí)行它們。

9. 數(shù)據(jù)清理和轉(zhuǎn)換

9.1 從數(shù)據(jù)中刪除重復(fù)項(xiàng)

#?Python腳本,用于從數(shù)據(jù)中刪除重復(fù)項(xiàng)

import?pandas?as?pd

def?remove_duplicates(data_frame):

??cleaned_data?=?data_frame.drop_duplicates()

??return?cleaned_data

腳本使用pandas從數(shù)據(jù)集中刪除重復(fù)行,這是確保數(shù)據(jù)完整性和提高數(shù)據(jù)分析的簡單有效的方法。

9.2 數(shù)據(jù)規(guī)范化

#?數(shù)據(jù)規(guī)范化的Python腳本

import?pandas?as?pd

def?normalize_data(data_frame):

??normalized_data?=?(data_frame?-?data_frame.min())?/?(data_frame.max()?-?data_frame.min())

??return?normalized_data

腳本使用最小-最大規(guī)范化技術(shù)對數(shù)據(jù)進(jìn)行規(guī)范化,將數(shù)據(jù)集中的值縮放到0到1范圍內(nèi),使比較不同特征更容易。

9.3 處理缺失值

#?Python腳本,用于處理數(shù)據(jù)中的缺失值

import?pandas?as?pd

def?handle_missing_values(data_frame):

??filled_data?=?data_frame.fillna(method='ffill')

??return?filled_data

腳本使用pandas處理數(shù)據(jù)集中的缺失值,使用向前填充方法用前一個(gè)非缺失值填充缺失值。

10. 自動化PDF操作

10.1 從PDF中提取文本

#?Python腳本,用于從PDF中提取文本

import?PyPDF2

def?extract_text_from_pdf(file_path):

??with?open(file_path,?'rb')?as?f:
????pdf_reader?=?PyPDF2.PdfFileReader(f)
????text?=?''
????for?page_num?in?range(pdf_reader.numPages):
??????page?=?pdf_reader.getPage(page_num)
??????text?+=?page.extractText()

??return?text

腳本使用PyPDF2庫從PDF文件中提取文本,讀取PDF的每一頁并將提取的文本編譯成一個(gè)字符串。

10.2 合并多個(gè)PDF

#?Python腳本,用于將多個(gè)PDF合并為一個(gè)PDF

import?PyPDF2

def?merge_pdfs(input_paths,?output_path):

??pdf_merger?=?PyPDF2.PdfMerger()

??for?path?in?input_paths:
????with?open(path,?'rb')?as?f:?
??????pdf_merger.append(f)

??with?open(output_path,?'wb')?as?f:
????pdf_merger.write(f)

腳本將多個(gè)PDF文件合并為一個(gè)PDF文檔,這對于合并獨(dú)立的PDF報(bào)告、演示文稿或其他文檔到一個(gè)連貫的文件很有用。

10.3 添加密碼保護(hù)

#?Python腳本,用于為PDF添加密碼保護(hù)

import?PyPDF2

def?add_password_protection(input_path,?output_path,?password):

??with?open(input_path,?'rb')?as?f:
????pdf_reader?=?PyPDF2.PdfFileReader(f)
????pdf_writer?=?PyPDF2.PdfFileWriter()
????for?page_num?in?range(pdf_reader.numPages):
??????page?=?pdf_reader.getPage(page_num)
??????pdf_writer.addPage(page)
????pdf_writer.encrypt(password)
????with?open(output_path,?'wb')?as?output_file:
??????pdf_writer.write(output_file)

腳本為PDF文件添加密碼保護(hù),使用密碼加密PDF,確保只有那些知道正確密碼的人才能訪問內(nèi)容。

綜上所述,本文探索了不同領(lǐng)域的10個(gè)Python腳本,這些腳本可以完成自動化過程。從網(wǎng)頁抓取和網(wǎng)絡(luò)自動化到機(jī)器學(xué)習(xí)和物聯(lián)網(wǎng)設(shè)備控制,Python的通用性允許高效地自動化廣泛的過程。

自動化不僅可以節(jié)省時(shí)間和精力,還可以減少錯(cuò)誤的風(fēng)險(xiǎn),提高整體效率。通過自定義和擴(kuò)展這些腳本,可以創(chuàng)建定制的自動化解決方案以滿足特定需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-819203.html

到了這里,關(guān)于10個(gè)常用python自動化腳本的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包