查看原文
其他

独家 | 17个可以用于工作自动化的最佳Python脚本(下集)

数据派THU 2023-10-28

作者:Abdul Hannan Hassan

翻译:付雯欣

校对:赵茹萱


本文约4800字,建议阅读10分钟

让我们进入自动化的世界,探索17个可以简化工作并节省时间精力的Python脚本。


您是否厌倦了在日常工作中做那些重复性的任务?简单但多功能的Python脚本可以解决您的问题。 


我们将通过上下两个篇章为您介绍17个能够自动执行各种任务并提高工作效率Python脚本及其代码。无论您是开发人员、数据分析师,还是只是希望简化工作流程的人,这些脚本都能满足您的需求。


引言


Python是一种流行的编程语言,以其简单性和可读性而闻名。因其能够提供大量的库和模块,它成为了自动化各种任务的绝佳选择。让我们进入自动化的世界,探索17个可以简化工作并节省时间精力的Python脚本。

目录(下篇)


10.网络自动化

11.数据清理和转换

12.自动化 PDF 操作

13.自动化GUI

14.自动化测试

15.自动化云服务

16.财务自动化

17.自然语言处理


10.网络自动化


10.1检查网站状态


```# Python script to check the status of a websiteimport requestsdef check_website_status(url):response = requests.get(url)if response.status_code == 200:# Your code here to handle a successful responseelse:# Your code here to handle an unsuccessful response```


说明:


此Python 脚本通过向提供的 URL 发送 HTTP GET 请求来检查网站的状态。它可以帮助您监控网站及其响应代码的可用性。


10.2自动 FTP 传输


```# Python script to automate FTP file transfersfrom ftplib import FTPdef 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)```


说明:


此Python 脚本使用 FTP 协议自动进行文件传输。它连接到 FTP 服务器,使用提供的凭据登录,并将本地文件上传到指定的远程位置。


10.3网络配置设置


```# Python script to automate network device configurationfrom netmiko import ConnectHandlerdef 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)```


说明:


此Python 脚本使用 netmiko 库自动配置网络设备,例如 Cisco路由器和交换机。您可以提供配置命令列表,此脚本将在目标设备上执行它们。


11. 数据清理和转换


11.1从数据中删除重复项


```# Python script to remove duplicates from dataimport pandas as pddef remove_duplicates(data_frame):cleaned_data = data_frame.drop_duplicates()return cleaned_data```


说明:


此Python脚本能够利用 pandas 从数据集中删除重复行,这是确保数据完整性和改进数据分析的简单而有效的方法。


11.2数据标准化


```# Python script for data normalizationimport pandas as pddef normalize_data(data_frame):normalized_data = (data_frame - data_frame.min()) / (data_frame.max() - data_frame.min())return normalized_data```


说明:


此Python 脚本使用最小-最大标准化技术对数据进行标准化。它将数据集中的值缩放到 0 到 1 之间,从而更容易比较不同的特征。


11.3处理缺失值

```# Python script to handle missing values in dataimport pandas as pddef handle_missing_values(data_frame):filled_data = data_frame.fillna(method='ffill')return filled_data```


说明:


此Python 脚本使用 pandas 来处理数据集中的缺失值。它使用前向填充方法,用先前的非缺失值填充缺失值。


12. 自动化 PDF 操作


12.1从PDF中提取文本



```# Python script to extract text from PDFsimportPyPDF2def 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```


说明:


此Python 脚本使用PyPDF2库从PDF文件中提取文本。它读取PDF的每一页并将提取的文本编译为单个字符串。


12.2合并多个PDF


```# Python script to merge multiple PDFs into a single PDFimport PyPDF2def 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)```


说明:


此Python脚本将多个PDF文件合并为一个PDF文档。它可以方便地将单独的PDF、演示文稿或其他文档合并为一个统一的文件。


12.3添加密码保护

```# Python script to add password protection to a PDFimport PyPDF2def 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)```


说明:


此Python脚本为PDF文件添加密码保护。它使用密码对PDF进行加密,确保只有拥有正确密码的人才能访问内容。


13. 自动化GUI 


13.1自动化鼠标和键盘


```# Python script for GUI automation using pyautoguiimport pyautoguidef automate_gui():# Your code here for GUI automation using pyautoguipass```


说明:


此Python 脚本使用 pyautogui 库,通过模拟鼠标移动、单击和键盘输入来自动执行 GUI 任务。它可以与 GUI 元素交互并执行单击按钮、键入文本或导航菜单等操作。


13.2创建简单的 GUI 应用程序


```# Python script to create simple GUI applications using tkinterimport tkinter as tkdef create_simple_gui():# Your code here to define the GUI elements and behaviorpass```


说明:


此Python 脚本可以使用 tkinter 库创建简单的图形用户界面 (GUI)。您可以设计窗口、按钮、文本字段和其他 GUI 元素来构建交互式应用程序。


13.3处理GUI事件


```# Python script to handle GUI events using tkinterimport tkinter as tkdef handle_gui_events():passdef on_button_click():# Your code here to handle button click eventroot = tk.Tk()button = tk.Button(root, text="Click Me", command=on_button_click)button.pack()root.mainloop()```


说明:


此Python 脚本演示了如何使用 tkinter 处理 GUI 事件。它创建一个按钮小部件并定义了一个回调函数,该函数将在单击按钮时执行。


14. 自动化测试


14.1使用 Python 进行单元测试


```# Python script for unit testing with the unittest moduleimport unittestdef add(a, b):return a + bclass TestAddFunction(unittest.TestCase):def test_add_positive_numbers(self):self.assertEqual(add(2, 3), 5)def test_add_negative_numbers(self):self.assertEqual(add(-2, -3), -5)def test_add_zero(self):self.assertEqual(add(5, 0), 5)if __name__ == '__main__':unittest.main()```


说明:


该Python脚本使用unittest模块来执行单元测试。它包括add 函数的测试用例,用正数、负数和零值检查其行为。


14.2用于 Web 测试的 Selenium


```# Python script for web testing using Seleniumfrom selenium import webdriverdef perform_web_test():driver = webdriver.Chrome()driver.get("https://www.example.com")# Your code here to interact with web elements and perform testsdriver.quit()```


说明:


此Python 脚本使用 Selenium 库来自动化 Web 测试。它启动 Web 浏览器,导航到指定的 URL,并与 Web 元素交互以测试网页的功能。


14.3测试自动化框架


```# Python script for building test automation frameworks# Your code here to define the framework architecture and tools```


说明:


构建测试自动化框架需要仔细的规划和组织。该脚本是一个创建自定义的、适合您的特定项目需求的测试自动化框架的起点。它涉及定义架构、选择合适的工具和库以及创建可重用的测试函数。


15. 自动化云服务


15.1向云空间上传文件


```# Python script to automate uploading files to cloud storage# Your code here to connect to a cloud storage service (e.g., AWS S3, Google Cloud Storage)# Your code here to upload files to the cloud storage```


说明:


自动将文件上传到云存储的过程可以节省时间并简化工作流程。利用相应的云服务API,该脚本可作为将云存储功能集成到 Python 脚本中的起点。


15.2管理AWS资源


```# Python script to manage AWS resources using Boto3import boto3def create_ec2_instance(instance_type, image_id, key_name, security_group_ids):ec2 = boto3.resource('ec2')instance = ec2.create_instances(ImageId=image_id,InstanceType=instance_type,KeyName=key_name,SecurityGroupIds=security_group_ids,MinCount=1,MaxCount=1)return instance[0].id ```


说明:


此Python 脚本使用 Boto3 库与 Amazon Web Services (AWS) 交互并创建 EC2 实例。它可以扩展以执行各种任务,例如创建 S3 buckets、管理 IAM 角色或启动 Lambda 函数。

15.3自动化 Google 云端硬盘


```# Python script to automate interactions with Google Drive# Your code here to connect to Google Drive using the respective API# Your code here to perform tasks such as uploading files, creating folders, etc.```


说明:


以编程方式与Google Drive 交互可以简化文件管理和组织。该脚本可以充当一个利用 Google Drive API 将 Google Drive 功能集成到 Python 脚本中的起点。


16. 财务自动化


16.1分析股票价格


```# Python script for stock price analysis# Your code here to fetch stock data using a financial API (e.g., Yahoo Finance)# Your code here to analyze the data and derive insights```


说明:


自动化获取和分析股票价格数据的过程对投资者和金融分析师来说是十分有益的。该脚本可作为一个使用金融 API 将股票市场数据集成到 Python 脚本中的起点。


16.2货币汇率


```# Python script to fetch currency exchange rates# Your code here to connect to a currency exchange API (e.g., Fixer.io, Open Exchange Rates)# Your code here to perform currency conversions and display exchange rates```


说明:


此Python 脚本利用货币兑换 API 来获取和显示不同货币之间的汇率。它可用于财务规划、国际贸易或旅行相关的应用程序。


16.3预算追踪


```# Python script for budget tracking and analysis# Your code here to read financial transactions from a CSV or Excel file# Your code here to calculate income, expenses, and savings# Your code here to generate reports and visualize budget data```


说明:


此Python 脚本使您能够通过从 CSV 或 Excel 文件读取财务交易来跟踪和分析预算。它反映有关收入、支出和储蓄的情况,帮助您作出明智的财务决策。


17. 自然语言处理


17.1情感分析


```# Python script for sentiment analysis using NLTK or other NLP librariesimportnltkfromnltk.sentiment import SentimentIntensityAnalyzerdefanalyze_sentiment(text):nltk.download('vader_lexicon')sia = SentimentIntensityAnalyzer()sentiment_score = sia.polarity_scores(text)return sentiment_score```


说明:


此Python 脚本使用 NLTK 库对文本数据进行情感分析。它计算情绪分数,这个分数表示所提供文本的积极性、中立性或消极性。


17.2文本摘要


```# Python script for text summarization using NLP techniques# Your code here to read the text data and preprocess it (e.g., removing stop words)# Your code here to generate the summary using techniques like TF-IDF, TextRank, or BERT```


说明:


文本摘要自动执行为冗长的文本文档创建简洁摘要的过程。该脚本可作为使用NLP 库实现各种文本摘要技术的起点。


17.3语言翻译

```# Python script for language translation using NLP libraries# Your code here to connect to a translation API (e.g., Google Translate, Microsoft Translator)# Your code here to translate text between different languages```


说明:


自动化语言翻译可以促进跨越语言障碍的沟通。该脚本可适配连接各种翻译API并支持多语言通信。


结论


在本文中,我们探索了17个可以跨不同领域自动执行各种任务的 Python 脚本。从网页抓取和网络自动化到机器学习和物联网设备控制,Python 的多功能性使我们能够高效地实现各种流程的自动化。


自动化不仅可以节省时间和精力,还可以降低出错风险并提高整体生产力。通过自定义和构建这些脚本,您可以创建定制的自动化解决方案来满足您的特定需求。


还等什么呢?立即开始使用Python 实现工作自动化,体验简化流程和提高效率的力量。


一些经常被问到的问题


1.Python适合自动化吗?


绝对适合!Python 因其简单性、可读性和丰富的库而成为最流行的自动化编程语言之一。它可以自动执行多种任务,因此成为了开发人员和 IT 专业人员的最佳选择。


2.使用 Python 自动化任务有哪些好处?


使用Python 自动化任务具有多种好处,包括提高效率、减少人工错误、节省时间和提高生产力。 Python 的易用性和丰富的库生态系统使其成为自动化项目的绝佳选择。


3. 我可以在我的项目中使用这些脚本吗?


是的,您可以使用这些脚本作为您的项目的起点。但是,请记住,提供的代码片段仅用于说明目的,可能需要修改才能满足您的特定要求和API。


4. 我需要安装任何库来运行这些脚本吗?


是的,某些脚本利用外部库。确保在运行脚本之前安装所需的库。您可以使用“pip install <library-name>”来安装任何缺少的库。


5. 我可以将这些脚本用于商业用途吗?


本文中提供的脚本旨在用于教育和说明。虽然您可以将它们用作项目的基础,但请查看并始终遵守商业项目中使用的任何外部库、API或服务的条款和条件。


6. 如何针对我的特定项目进一步优化这些脚本?


要根据您的特殊目的优化这些脚本,您可能需要修改代码、添加错误处理、自定义数据处理步骤以及与必要的API 或服务集成。您要始终记得彻底测试脚本以确保它们满足您的要求。


7. 我可以使用Python自动执行复杂的任务吗?


是的,Python能够自动执行跨多个领域的复杂任务,包括数据分析、机器学习、网络抓取等。借助正确的库和算法,您可以有效地处理复杂的任务。


8. 自动化任务时是否有任何安全考虑?


是的,在自动化涉及敏感数据、API或设备的任务时,实施安全措施至关重要。使用安全连接(HTTPS、SSH),避免对敏感信息进行硬编码,并考虑访问控制和身份验证来保护您的系统和数据。

原文链接:

https://mentorthetech.blogspot.com/2023/07/20-python-scripts-with-code-to-automate.html


编辑:王菁‍‍‍
‍‍‍




译者简介





付雯欣,中国人民大学统计学专业硕士研究生在读,数据科学道路上的探索者一枚。小时候梦想做数学家,现在依旧着迷于数据背后的世界。热爱阅读,热爱遛弯儿,不停感受打开生命大门的瞬间。欢迎大家和我一起用概率的视角看世界~

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。


点击文末“阅读原文”加入数据派团队~



转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。



点击“阅读原文”拥抱组织



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存