专栏名称: Python之禅
分享Python相关技术干货,偶尔扯扯其它的
目录
相关文章推荐
爱猫之和高Y家打官S版  ·  凌晨墙内传出吓人的怪响,网友冒险破墙后,竟是 ... ·  2 天前  
爱猫之和高Y家打官S版  ·  凌晨墙内传出吓人的怪响,网友冒险破墙后,竟是 ... ·  2 天前  
读嘉新闻  ·  刚刚,张兰、汪小菲账号被无限期封禁! ·  2 天前  
读嘉新闻  ·  刚刚,张兰、汪小菲账号被无限期封禁! ·  2 天前  
开发者全社区  ·  跳崖了 ·  3 天前  
PM圈子  ·  程序员连相7天亲:规划有多重要! ·  4 天前  
成都消防救援  ·  DeepSeek为成都消防写了诗,速来看→ ·  4 天前  
成都消防救援  ·  DeepSeek为成都消防写了诗,速来看→ ·  4 天前  
51好读  ›  专栏  ›  Python之禅

9个工作必备的Python自动化代码

Python之禅  · 公众号  ·  · 2024-03-14 16:41

正文

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))```


说明:


此Python脚本根据文件扩展名将文件分类到子目录中,以组织目录中的文件。它识别文件扩展名并将文件移动到适当的子目录。这对于整理下载文件夹或组织特定项目的文件很有用。


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)```


说明:


此Python脚本可以搜索并删除指定目录中的空文件夹。它可以帮助您在处理大量数据时保持文件夹结构的干净整洁。


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))```


说明:


此Python脚本允许您同时重命名目录中的多个文件。它将旧名称和新名称作为输入,并将所有符合指定条件的文件的旧名称替换为新名称。


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```


说明:


此Python脚本利用requests和BeautifulSoup库从网站上抓取数据。它获取网页内容并使用BeautifulSoup解析HTML。您可以自定义脚本来提取特定数据,例如标题、产品信息或价格。


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 URLs        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)```


说明:


此Python脚本旨在从网站批量下载图像。它为网站提供返回图像URL数组的JSON API。然后,该脚本循环访问URL并下载图像,并将其保存到指定目录。


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```


说明:


此Python脚本通过发送带有表单数据的POST请求来自动在网站上提交表单。您可以通过提供URL和要提交的必要表单数据来自定义脚本。


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```


说明:


此Python脚本读取一个文本文件并计算它包含的单词数。它可用于快速分析文本文档的内容或跟踪写作项目中的字数情况。


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)```


说明:


此Python脚本能搜索文件中的特定文本并将其替换为所需的文本。它对于批量替换某些短语或纠正大型文本文件中的错误很有帮助。


3.3生成随机文本


```# Python script to generate random textimport randomimport stringdef 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```


说明:


此Python脚本生成指定长度的随机文本。它可以用于测试和模拟,甚至可以作为创意写作的随机内容来源。


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_email        message['To'] = recipient_email        message['Subject'] = subject        message.attach(MIMEText(body, 'plain'))        server.sendmail(sender_email, recipient_email, message.as_string())    server.quit()```
说明:


此Python脚本使您能够向收件人列表发送个性化电子邮件。您可以自定义发件人的电子邮件、密码、主题、正文和收件人电子邮件列表。请注意,出于安全原因,您在使用Gmail时应使用应用程序专用密码。


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_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()```


说明:


此 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_email        message['To'] = recipient_email        message['Subject'] = subject        server.sendmail(sender_email, recipient_email, message.as_string())    server.quit()```


说明:


此Python脚本根据指定日期发送自动电子邮件提醒。它对于设置重要任务或事件的提醒非常有用,确保您不会错过最后期限。


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)```


说明:


此Python脚本使用pandas库从Excel电子表格读取数据并将数据写入新的Excel文件。它允许您通过编程处理Excel文件,使数据操作和分析更加高效。


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 visualization    pass```


说明:


此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)```


说明:


此Python脚本将Excel文件中多个工作表的数据合并到一个工作表中。当您将数据分散在不同的工作表中但想要合并它们以进行进一步分析时,这会很方便。


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```


说明:


此Python脚本是在数据库上执行SQL查询的通用函数。您可以将查询作为参数与数据库连接对象一起传递给函数,它将返回查询结果。


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)```


说明:


此Python 脚本允许您创建数据库的备份并在需要时恢复它们。这是预防您的宝贵数据免遭意外丢失的措施。


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)```
说明:


此Python 脚本自动在Twitter和Facebook上共享随机内容。您可以对其进行自定义,以从列表或数据库中获取内容并定期在社交媒体平台上共享。


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```


说明:


此Python脚本执行网页抓取以从社交媒体平台提取数据。它获取所提供URL的内容,然后使用BeautifulSoup等技术来解析HTML并提取所需的数据。


8.自动化系统任务


8.1管理系统进程







请到「今天看啥」查看全文