汇总17个工作必备的Python自动化代码
转自:网络
👇我的小册 40章+教程:(小白零基础用Python量化股票分析小册) ,目前已经300多人订阅
引言
   1.自动化文件管理
   1.1 对目录中的文件进行排序
   ```# Python script to sort files in a directory by their extensionimport osfromshutil import movedef 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))```
1.2 删除空文件夹
```# Python script to remove empty folders in a directoryimport osdef 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)```
1.3 重命名多个文件
```# Python script to rename multiple files in a directoryimport osdef 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))```
2. 使用Python进行网页抓取
   2.1从网站提取数据
   ```# Python script for web scraping to extract data from a websiteimport requestsfrom bs4 import BeautifulSoupdef scrape_data(url):response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')# Your code here to extract relevant data from the website```
2.2从网站提取数据
   ```# Python script to download images in bulk from a websiteimport requestsdef download_images(url, save_directory):response = requests.get(url)if response.status_code == 200:images = response.json() # Assuming the API returns a JSON array of image URLsfor 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)```
2.3自动提交表单
```# Python script to automate form submissions on a websiteimport requestsdef submit_form(url, form_data):response = requests.post(url, data=form_data)if response.status_code == 200:# Your code here to handle the response after form submission```
3. 文本处理和操作
   3.1计算文本文件中的字数
   ```# Python script to count words in a text filedef count_words(file_path):with open(file_path, 'r') as f:text = f.read()word_count = len(text.split())return word_count```
3.2从网站提取数据
   ```# Python script to find and replace text in a filedef 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)```
3.3生成随机文本
   ```# Python script to generate random textimport randomimport stringdef generate_random_text(length):letters = string.ascii_letters + string.digits + string.punctuationrandom_text = ''.join(random.choice(letters) for i in range(length))return random_text```
4.电子邮件自动化
   4.1发送个性化电子邮件
   ```# Python script to send personalized emails to a list of recipientsimport smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartdef 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_emailmessage['To'] = recipient_emailmessage['Subject'] = subjectmessage.attach(MIMEText(body, 'plain'))server.sendmail(sender_email, recipient_email, message.as_string())server.quit()```
4.2通过电子邮件发送文件附件
   ```# Python script to send emails with file attachmentsimport smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.base import MIMEBasefrom email import encodersdef 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_emailmessage['To'] = recipient_emailmessage['Subject'] = subjectmessage.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()```
此 Python 脚本允许您发送带有文件附件的电子邮件。只需提供发件人的电子邮件、密码、收件人的电子邮件、主题、正文以及要附加的文件的路径。
   4.3自动邮件提醒
   ```# Python script to send automatic email remindersimport smtplibfrom email.mime.text import MIMETextfrom datetime import datetime, timedeltadef 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_emailmessage['To'] = recipient_emailmessage['Subject'] = subjectserver.sendmail(sender_email, recipient_email, message.as_string())server.quit()```
5.自动化Excel电子表格
   5.1Excel读&写
   ```# Python script to read and write data to an Excel spreadsheetimport pandas as pddef read_excel(file_path):df = pd.read_excel(file_path)return dfdef write_to_excel(data, file_path):df = pd.DataFrame(data)df.to_excel(file_path, index=False)```
5.2数据分析和可视化
   ```# Python script for data analysis and visualization with pandas and matplotlibimport pandas as pdimport matplotlib.pyplot as pltdef analyze_and_visualize_data(data):# Your code here for data analysis and visualizationpass```
此Python脚本使用pandas和matplotlib库来进行数据分析和可视化。它使您能够探索数据集、得出结论并得到数据的可视化表示。
   5.3合并多个工作表
   ```# Python script to merge multiple Excel sheets into a single sheetimport pandas as pddef 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)```
6.与数据库交互
   6.1连接到一个数据库
   ```# Python script to connect to a database and execute queriesimport sqlite3def connect_to_database(database_path):connection = sqlite3.connect(database_path)return connectiondef execute_query(connection, query):cursor = connection.cursor()cursor.execute(query)result = cursor.fetchall()return result```
此Python脚本允许您连接到SQLite数据库并执行查询。您可以使用适当的Python数据库驱动程序将其调整为与其他数据库管理系统(例如MySQL或PostgreSQL)配合使用。
   6.2执行SQL查询
   ```# Python script to execute SQL queries on a databaseimport sqlite3def execute_query(connection, query):cursor = connection.cursor()cursor.execute(query)result = cursor.fetchall()return result```
6.3数据备份与恢复
   ```import shutildef 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)```
7.社交媒体自动化
   7.1发送个性化电子邮件
   ```# Python script to automate posting on Twitter and Facebookfrom twython import Twythonimport facebookdef post_to_twitter(api_key, api_secret, access_token, access_token_secret, message):twitter = Twython(api_key, api_secret, access_token, access_token_secret)twitter.update_status(status=message)def post_to_facebook(api_key, api_secret, access_token, message):graph = facebook.GraphAPI(access_token)graph.put_object(parent_object='me', connection_name='feed', message=message)```
此 Python 脚本利用Twython和facebook-sdk库自动在Twitter和Facebook上发布内容。您可以使用它将 Python 脚本中的更新、公告或内容直接共享到您的社交媒体配置文件。
   7.2社交媒体自动共享
   ```# Python script to automatically share content on social media platformsimport randomdef get_random_content():# Your code here to retrieve random content from a list or databasepassdef post_random_content_to_twitter(api_key, api_secret, access_token, access_token_secret):content = get_random_content()post_to_twitter(api_key, api_secret, access_token, access_token_secret, content)def post_random_content_to_facebook(api_key, api_secret, access_token):content = get_random_content()post_to_facebook(api_key, api_secret, access_token, content)```
7.3 抓取社交媒体数据
   ```# Python script for scraping data from social media platformsimport requestsdef scrape_social_media_data(url):response = requests.get(url)# Your code here to extract relevant data from the response```
8.自动化系统任务
   8.1管理系统进程
   ```# Python script to manage system processesimport psutildef 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()```
8.2使用 Cron 安排任务
```# Python script to schedule tasks using cron syntaxfrom crontab import CronTabdef schedule_task(command, schedule):cron = CronTab(user=True)job = cron.new(command=command)job.setall(schedule)cron.write()```
8.3自动邮件提醒
   ```# Python script to monitor disk space and send an alert if it's lowimport psutildef check_disk_space(minimum_threshold_gb):disk = psutil.disk_usage('/')free_space_gb = disk.free / (230) # Convert bytes to GBif free_space_gb < minimum_threshold_gb:# Your code here to send an alert (email, notification, etc.)pass```
9.自动化图像编辑
   9.1图像大小调整和裁剪
   ```# Python script to resize and crop imagesfrom PIL import Imagedef resize_image(input_path, output_path, width, height):image = Image.open(input_path)resized_image = image.resize((width, height), Image.ANTIALIAS)resized_image.save(output_path)def crop_image(input_path, output_path, left, top, right, bottom):image = Image.open(input_path)cropped_image = image.crop((left, top, right, bottom))cropped_image.save(output_path)```
9.2为图像添加水印
   ```# Python script to add watermarks to imagesfrom PIL import Imagefrom PIL import ImageDrawfrom PIL import ImageFontdef add_watermark(input_path, output_path, watermark_text):image = Image.open(input_path)draw = ImageDraw.Draw(image)font = ImageFont.truetype('arial.ttf', 36)draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font)image.save(output_path)```
```# Python script to create image thumbnailsfrom PIL import Imagedef create_thumbnail(input_path, output_path, size=(128, 128)):image = Image.open(input_path)image.thumbnail(size)image.save(output_path)```
小结
   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```
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)```
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)```
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```
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 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```
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```
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 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)```
13. 自动化GUI 
   13.1自动化鼠标和键盘
```# Python script for GUI automation using pyautoguiimport pyautoguidef automate_gui():# Your code here for GUI automation using pyautoguipass```
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 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()```
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()```
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 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```
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 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.```
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```
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 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```
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```
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```
```# 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```
结论
   一些经常被问到的问题
   1.Python适合自动化吗?
   2.使用 Python 自动化任务有哪些好处?
   3. 我可以在我的项目中使用这些脚本吗?
   4. 我需要安装任何库来运行这些脚本吗?
   5. 我可以将这些脚本用于商业用途吗?
   6. 如何针对我的特定项目进一步优化这些脚本?
   7. 我可以使用Python自动执行复杂的任务吗?
   8. 自动化任务时是否有任何安全考虑?
   最后推荐一下我们团队写的量化小册的内容,45篇内容!从Python安装,入门,数据分析,爬取股票基金的历史+实时数据,以及如何写一个简单量化策略,策略回测,如何看资金曲线统统都有介绍!非常超值!
欢迎订阅:原价199 早鸟价2杯咖啡钱,即可永久阅读。现在的价格非常非常低,只要2杯奶茶,就可以终身订阅+课程源码,还有永久陪伴群。48小时无理由退款,放心食用!
推荐阅读:
量化: 如何用Python爬取创业板历史+实时股票数据!|实战股票分析篇利用Pandas 9招挖掘五粮液股价!|实战股票数据分析篇 Pandas滚动操作 |量化股票第一步,用Python画股票K线,双均线图,可视化你的股票数据!|如何用Python爬取全部800多只ETF基金数据!|如何用Python写一个双均线策略 |如何用Python开发一个多策略机器人!上篇!|Python量化系列-用布林策略买五粮液能赚多少钱?|只要4秒钟!用Python 获取上证指数34年的历史日线数据!
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
