电竞比分网-中国电竞赛事及体育赛事平台

分享

用Python打造的8個(gè)自動化工作流

 江海博覽 2025-10-11 發(fā)布于浙江
用Python打造的8個(gè)自動化工作流

引言:為什么你該把重復(fù)性工作交給Python?

在我剛開始編程的時(shí)候,我發(fā)現(xiàn)自己浪費(fèi)了大量的時(shí)間在那些“機(jī)械”且“無腦”的任務(wù)上:給文件重新命名、整理混亂的數(shù)據(jù)表、一遍又一遍地編寫著結(jié)構(gòu)相似的報(bào)告……這些工作不僅耗費(fèi)精力,更重要的是,它們占據(jù)了我寶貴的腦力,讓我筋疲力盡,沒有余力去思考和解決真正有挑戰(zhàn)性的難題。

后來,我“邂逅”了 Python。我開始意識到,這種簡潔而強(qiáng)大的編程語言,可以替我完成大部分的重復(fù)性工作。隨著我自動化程度的提高,我體會到一個(gè)深刻的道理:自動化并不僅僅是為了提高效率。它真正的價(jià)值,在于將你從繁瑣的“體力勞動”中解救出來,讓你的大腦擁有更多的空間和時(shí)間,去進(jìn)行更深層次、更有創(chuàng)造性的思考。

本篇文章,我將毫無保留地分享我用Python構(gòu)建起來的8個(gè)自動化系統(tǒng)。每個(gè)系統(tǒng)都附帶了核心代碼片段、使用的工具,以及隱藏在代碼背后的、讓Python為你“負(fù)重前行”的深層原理。如果你也厭倦了日復(fù)一日的重復(fù)工作,那么這篇文章,就是你邁向“自動化自由”的第一步。


一、 文件管理噩夢的終結(jié)者:批量重命名與整理

1. 痛點(diǎn):被文件命名混亂所支配的日常

無論在哪家公司工作,我總能遇到一種普遍的“病癥”——文件命名混亂。各種版本、各種格式、各種不規(guī)范的命名,讓查找和管理文件變成了一場災(zāi)難。如果你需要手動去修改200個(gè)文件名稱,那將是極大的時(shí)間浪費(fèi)。然而,Python可以在幾秒鐘內(nèi)解決這個(gè)問題。

2. 核心工具:os 模塊與 pathlib 庫

Python內(nèi)置的 os 模塊和 pathlib 庫,是進(jìn)行文件系統(tǒng)操作的兩把“瑞士軍刀”。

  • pathlib:提供了一種面向?qū)ο蟮奈募窂讲僮鞣绞?,讓路徑處理更加清晰和安全?/li>
  • os:提供了與操作系統(tǒng)交互的接口,如文件重命名、目錄創(chuàng)建等。

3. 實(shí)現(xiàn)原理與代碼示例:規(guī)范化命名流程

我的策略是:遍歷指定目錄下的所有文件,然后按照統(tǒng)一的規(guī)則進(jìn)行序號化命名。

import os from pathlib import Path # 定義要處理的目錄路徑 directory = Path('C:/reports/') # 遍歷目錄中的所有內(nèi)容,并從1開始計(jì)數(shù) for i, file in enumerate(directory.iterdir(), start=1): # 檢查當(dāng)前路徑是否為一個(gè)文件(排除子目錄) if file.is_file(): # 構(gòu)造新的文件名:使用統(tǒng)一前綴“report_” + 序號 + 原始文件后綴 new_name = directory / f'report_{i}{file.suffix}' # 執(zhí)行重命名操作 file.rename(new_name) # 打印操作結(jié)果,便于追蹤 print(f'Renamed {file} -> {new_name}')

原理分析:

  1. Path('C:/reports/'):定義了要操作的根目錄。
  2. directory.iterdir():迭代器,高效地遍歷目錄下的所有文件和子目錄。
  3. enumerate(..., start=1):在遍歷的同時(shí)提供一個(gè)從1開始的序號 i。
  4. file.is_file():確保我們只對文件進(jìn)行操作,避免錯(cuò)誤地重命名文件夾。
  5. f'report_{i}{file.suffix}':利用 f-string 構(gòu)造新的文件名,file.suffix 保留了文件的原始擴(kuò)展名(如.pdf, .csv)。
  6. file.rename(new_name):將舊文件路徑指向新文件路徑,完成重命名。

通過這段腳本,原本雜亂無章的文件集瞬間變得規(guī)范有序,省去了你點(diǎn)擊鼠標(biāo)、輸入文字的數(shù)百次重復(fù)操作。


二、數(shù)據(jù)清洗不再是“噩夢”:用 pandas 馴服混亂的CSV

1. 痛點(diǎn):數(shù)據(jù)分析前的“體力活”

數(shù)據(jù)科學(xué)家和分析師都知道,“骯臟的CSV文件是生活中的一個(gè)事實(shí)”。在進(jìn)行任何有意義的分析之前,你必須面對數(shù)據(jù)清洗的“體力活”:不規(guī)范的列名、缺失值、重復(fù)記錄等等。如果手動處理一個(gè)包含數(shù)十萬行數(shù)據(jù)的電子表格,那幾乎是不可能完成的任務(wù)。

2. 核心工具:數(shù)據(jù)處理的“核武器” pandas

pandas 庫是Python在數(shù)據(jù)處理領(lǐng)域的王者,它使得數(shù)據(jù)清洗工作變得幾乎“毫不費(fèi)力”。它提供了強(qiáng)大的數(shù)據(jù)結(jié)構(gòu) DataFrame,讓你可以像操作Excel表格一樣,高效地進(jìn)行復(fù)雜的數(shù)據(jù)轉(zhuǎn)換。

3. 實(shí)現(xiàn)原理與代碼示例:三步打造分析就緒的數(shù)據(jù)

這個(gè)腳本的目標(biāo)是:清洗列名、處理缺失值、去除重復(fù)項(xiàng),將一個(gè)“噩夢級”的電子表格轉(zhuǎn)化為“分析就緒”的狀態(tài)。

import pandas as pd

# 1. 讀取原始的CSV文件
df = pd.read_csv('sales.csv')

# 2. 清理列名:去除前后空格,轉(zhuǎn)換為小寫,并將空格替換為下劃線
df.columns = [col.strip().lower().replace(' ', '_') for col in df.columns]

# 3. 填充缺失值:將“revenue”列中的所有缺失值(NaN)替換為0
df['revenue'] = df['revenue'].fillna(0)

# 4. 移除重復(fù)數(shù)據(jù):保留第一次出現(xiàn)的記錄,刪除后續(xù)的重復(fù)行
df = df.drop_duplicates()

# 5. 將清洗后的數(shù)據(jù)保存為新的CSV文件,不包含DataFrame的索引
df.to_csv('clean_sales.csv', index=False)

原理分析:

  1. 列名規(guī)范化: 列表推導(dǎo)式 [col.strip().lower().replace(' ', '_') for col in df.columns] 是一種高效的Python技巧。它確保了所有列名都是統(tǒng)一的、小寫的、沒有多余空格且用下劃線連接的格式,極大地提高了代碼的可讀性和健壯性。
  2. 缺失值處理: .fillna(0) 是最簡單直接的缺失值處理方法之一,它將所有缺失的收入數(shù)據(jù)安全地設(shè)置為零,避免了計(jì)算錯(cuò)誤。
  3. 重復(fù)項(xiàng)刪除: .drop_duplicates() 能夠智能地識別并刪除完全相同的行,這是確保數(shù)據(jù)質(zhì)量的關(guān)鍵一步。

三、告別手動復(fù)制粘貼:自動化數(shù)據(jù)報(bào)告生成系統(tǒng)

1. 痛點(diǎn):重復(fù)勞動中最耗時(shí)的環(huán)節(jié)

每次到了月底或季度末,你是否都要將分析結(jié)果、圖表、關(guān)鍵數(shù)字從一個(gè)工具復(fù)制,粘貼到PowerPoint或Word文檔中,然后調(diào)整格式?這種**“將數(shù)字復(fù)制粘貼到幻燈片中”**的動作是自動化最能體現(xiàn)價(jià)值的地方。

2. 核心工具:matplotlib、jinja2 與數(shù)據(jù)流程

要生成一份完整的報(bào)告,我們需要三個(gè)核心步驟和工具:

  • 數(shù)據(jù)準(zhǔn)備與分析:使用 pandas (沿用上一節(jié)清洗好的數(shù)據(jù))。
  • 數(shù)據(jù)可視化:使用 matplotlib.pyplot 繪制圖表并保存為圖片。
  • 報(bào)告模板渲染:使用 jinja2 模板引擎,將數(shù)據(jù)和圖表“填充”進(jìn)一個(gè)HTML或文本框架中。

3. 實(shí)現(xiàn)原理與代碼示例:從數(shù)據(jù)到完整HTML報(bào)告

這個(gè)腳本實(shí)現(xiàn)了帶有可視化圖表的完整數(shù)據(jù)報(bào)告的自動化生成

import pandas as pd import matplotlib.pyplot as plt from jinja2 import Template # 1. 讀取清洗好的數(shù)據(jù) df = pd.read_csv('clean_sales.csv') # 2. 生成可視化圖表并保存 # 假設(shè)df中已有“date”和“revenue”兩列 plt.plot(df['date'], df['revenue']) plt.savefig('plot.png') # 將圖表保存為圖片文件 # 3. 定義HTML報(bào)告的模板 template = Template(''' <h1>Sales Report</h1> <p>Total Revenue: {{ total }}</p> <img src='plot.png'> ''') # 4. 計(jì)算報(bào)告中的關(guān)鍵指標(biāo)(例如:總收入) total_revenue = df['revenue'].sum() # 5. 使用jinja2渲染模板:將計(jì)算結(jié)果傳入模板 html_report = template.render(total=total_revenue) # 6. 將渲染好的HTML內(nèi)容寫入報(bào)告文件 with open('report.html', 'w') as f: f.write(html_report)

原理分析:

  1. matplotlib.pyplot.savefig('plot.png'): 這是關(guān)鍵一步,它將內(nèi)存中的圖表對象直接保存為本地圖片文件,供后續(xù)報(bào)告引用。
  2. jinja2.Template: jinja2 允許你定義一個(gè)帶有占位符(如 {{ total }})的文本模板。
  3. template.render(total=...): 在運(yùn)行時(shí),它將變量 total_revenue 的值替換掉模板中的 {{ total }},并將 HTML 報(bào)告內(nèi)容渲染出來。

通過這種方式,一份包含數(shù)據(jù)、關(guān)鍵指標(biāo)和可視化圖表的報(bào)告,不再需要人工介入,只需運(yùn)行一次腳本即可自動生成。


四、打通信息共享的“最后一公里”:自動化郵件發(fā)送

1. 痛點(diǎn):報(bào)告的價(jià)值在于共享

無論你生成了多么完美的報(bào)告,如果它沒有被及時(shí)、準(zhǔn)確地共享給團(tuán)隊(duì)或相關(guān)負(fù)責(zé)人,那么它的價(jià)值就大打折扣。手動打開郵箱、撰寫郵件、上傳附件,又是每天的重復(fù)性工作。

2. 核心工具:smtplib 庫與 EmailMessage 類

Python的 smtplib 庫是處理電子郵件的核心工具,它實(shí)現(xiàn)了簡單郵件傳輸協(xié)議(SMTP)客戶端。配合 email.message 模塊中的 EmailMessage 類,可以輕松構(gòu)建包含附件、HTML內(nèi)容的復(fù)雜郵件。

3. 實(shí)現(xiàn)原理與代碼示例:自動發(fā)送帶附件的HTML報(bào)告

這個(gè)腳本將上一步生成的 report.html 文件作為附件,通過加密連接(SMTP_SSL)自動發(fā)送給目標(biāo)收件人。

import smtplib
from email.message import EmailMessage

# 1. 創(chuàng)建郵件消息對象
msg = EmailMessage()
msg['Subject'] = 'Weekly Sales Report' # 郵件主題
msg['From'] = 'me@'        # 發(fā)件人
msg['To'] = 'team@'          # 收件人
msg.set_content('See attached report.') # 郵件正文(簡單文本)

# 2. 讀取并添加HTML報(bào)告作為附件
with open('report.html', 'rb') as f:
    file_data = f.read()

# 添加附件,指定主類型(maintype)和子類型(subtype)為 text/html
msg.add_attachment(file_data,
                   maintype='text', 
                   subtype='html', 
                   filename='report.html')

# 3. 使用SMTP_SSL建立安全連接并發(fā)送郵件
# 465是SMTP over SSL的默認(rèn)端口
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
    # 登錄郵箱
    smtp.login('me@', 'password') # 注意:實(shí)際應(yīng)用中應(yīng)使用應(yīng)用專用密碼或安全密鑰
    
    # 發(fā)送郵件
    smtp.send_message(msg)

原理分析:

  1. EmailMessage: 這個(gè)類讓設(shè)置郵件頭(主題、發(fā)件人、收件人)變得非常直觀。
  2. msg.add_attachment(...): 附件是作為二進(jìn)制數(shù)據(jù) ('rb' 模式讀取) 添加的。指定 maintype 為 text 和 subtype 為 html 告訴郵件客戶端這是一個(gè)HTML格式的文件。
  3. smtplib.SMTP_SSL: 確保郵件傳輸過程是加密和安全的。

現(xiàn)在,整個(gè)團(tuán)隊(duì)都能及時(shí)收到最新的更新報(bào)告,而你從頭到尾都無需“動一根手指”。


五、瀏覽器任務(wù)自動化:selenium 模擬人類操作

1. 痛點(diǎn):API無法觸及的“信息孤島”

在某些情況下,你想要的數(shù)據(jù)或操作并不提供友好的API接口。比如,需要登錄一個(gè)老舊的內(nèi)部系統(tǒng)、填寫復(fù)雜的在線表格,或者進(jìn)行網(wǎng)頁數(shù)據(jù)抓?。╓eb Scraping)。這些任務(wù)看似必須由人手動完成。

2. 核心工具:瀏覽器自動化領(lǐng)域的“瑞士軍刀” selenium

selenium 庫原本是用于Web應(yīng)用測試的,但它被廣泛應(yīng)用于驅(qū)動真實(shí)瀏覽器進(jìn)行自動化操作。它能夠模擬用戶的點(diǎn)擊、輸入、滾動等所有行為,是處理那些“無法通過API完成的任務(wù)”的利器。

3. 實(shí)現(xiàn)原理與代碼示例:自動化登錄與表單提交

這個(gè)腳本展示了如何使用 selenium 自動打開網(wǎng)頁、定位元素(如輸入框和按鈕)并執(zhí)行交互操作(如輸入文本和點(diǎn)擊)。

from selenium import webdriver from selenium.webdriver.common.by import By # 1. 初始化Chrome瀏覽器驅(qū)動 driver = webdriver.Chrome() # 2. 打開目標(biāo)登錄頁面 driver.get('https:///login') # 3. 定位用戶名輸入框(通過ID),并輸入用戶名 # By.ID 是定位策略之一 driver.find_element(By.ID, 'username').send_keys('my_username') # 4. 定位密碼輸入框(通過ID),并輸入密碼 driver.find_element(By.ID, 'password').send_keys('my_password') # 5. 定位登錄按鈕(通過ID),并執(zhí)行點(diǎn)擊操作 driver.find_element(By.ID, 'login-btn').click() # ... 后續(xù)可以繼續(xù)添加更多操作,例如等待頁面加載,提取數(shù)據(jù)等 # driver.quit() # 在任務(wù)完成后關(guān)閉瀏覽器

原理分析:

  1. webdriver.Chrome(): 實(shí)例化一個(gè)Chrome瀏覽器對象,它會打開一個(gè)真實(shí)的、可操作的瀏覽器窗口。
  2. driver.find_element(By.ID, '...'): 這是定位網(wǎng)頁元素的常用方法。By 類提供了多種定位方式(如ID、Name、CSS選擇器、XPath等)。
  3. .send_keys('...'): 模擬鍵盤輸入,常用于輸入框。
  4. .click(): 模擬鼠標(biāo)點(diǎn)擊操作。

無論是抓取數(shù)據(jù)還是自動化表單提交,selenium 都是解決瀏覽器自動化問題的終極工具。


六、讓腳本“自己動起來”:任務(wù)調(diào)度與定時(shí)運(yùn)行

1. 痛點(diǎn):自動化需要“無人值守”

一項(xiàng)自動化任務(wù),如果還需要你手動去點(diǎn)擊運(yùn)行,那它只能算完成了一半。真正的自動化意味著它能夠在無需人工干預(yù)的情況下,在正確的時(shí)間自動執(zhí)行。

2. 核心工具:輕量級任務(wù)調(diào)度器 schedule

schedule 是一個(gè)輕量級且非常人性化的Python庫,專門用于在腳本內(nèi)部進(jìn)行任務(wù)調(diào)度。它用接近自然語言的方式來定義任務(wù)的運(yùn)行周期(例如:“每天早上9點(diǎn)”、“每周一”等)。

3. 實(shí)現(xiàn)原理與代碼示例:每周一準(zhǔn)時(shí)運(yùn)行

這段代碼演示了如何定義一個(gè)任務(wù),并讓它在每周一的固定時(shí)間自動執(zhí)行。

import schedule
import time

# 定義要執(zhí)行的自動化任務(wù)函數(shù)
def job():
    print('Running weekly automation...')
    # 在實(shí)際應(yīng)用中,這里會調(diào)用前面編寫的:
    # 1. 數(shù)據(jù)清洗腳本
    # 2. 報(bào)告生成腳本
    # 3. 郵件發(fā)送腳本
    pass # 示例中僅打印信息

# 設(shè)置調(diào)度規(guī)則:每周一的上午9點(diǎn)00分執(zhí)行一次 job 函數(shù)
schedule.every().monday.at('09:00').do(job)

# 開啟無限循環(huán),不斷檢查是否有待執(zhí)行的任務(wù)
while True:
    # 運(yùn)行所有等待中的任務(wù)
    schedule.run_pending()
    
    # 暫停1秒,避免CPU占用過高,然后繼續(xù)循環(huán)檢查
    time.sleep(1)

原理分析:

  1. .every().monday.at('09:00').do(job): schedule 庫的魔力所在。它用清晰的鏈?zhǔn)秸{(diào)用,定義了任務(wù)的執(zhí)行時(shí)間和要執(zhí)行的函數(shù) job。
  2. schedule.run_pending(): 這是循環(huán)的核心,它會檢查所有已注冊的調(diào)度任務(wù),如果某個(gè)任務(wù)的執(zhí)行時(shí)間到了,就會立即運(yùn)行它。
  3. time.sleep(1): 這是一個(gè)標(biāo)準(zhǔn)的實(shí)踐,用來控制循環(huán)頻率,避免程序以極快的速度不斷空轉(zhuǎn),浪費(fèi)資源。

有了 schedule,你的腳本就像定時(shí)的鬧鐘一樣,無需任何手動觸發(fā),自己就能在后臺準(zhǔn)確執(zhí)行。


七、PDF文檔的“外科手術(shù)刀”:高效整理與合并

1. 痛點(diǎn):PDF文檔處理的繁瑣性

PDF是一種常見且重要的文檔格式,但對它的操作,如合并、分割或重組,通常需要付費(fèi)軟件或者繁瑣的點(diǎn)擊Adobe Acrobat菜單。這種人工操作同樣是低效的。

2. 核心工具:PyPDF2 —— 強(qiáng)大的PDF處理庫

PyPDF2 是一個(gè)專門用于處理PDF文件的Python庫。它可以讓你用一行命令來完成復(fù)雜的PDF操作,例如合并多個(gè)文件、提取頁面等。

3. 實(shí)現(xiàn)原理與代碼示例:一鍵合并多份報(bào)告

這段代碼展示了如何快速將多個(gè)報(bào)告PDF文件合并成一個(gè)單一的、完整的PDF文檔。

from PyPDF2 import PdfMerger # 1. 創(chuàng)建一個(gè) PdfMerger 對象 merger = PdfMerger() # 2. 依次添加需要合并的PDF文件 merger.append('report1.pdf') merger.append('report2.pdf') # ... 可以添加任意多個(gè)文件 # 3. 將所有合并的內(nèi)容寫入一個(gè)新的PDF文件 merger.write('merged_report.pdf') # 4. 關(guān)閉merger對象,釋放資源 merger.close()

原理分析:

  1. PdfMerger(): 實(shí)例化一個(gè)合并器對象,可以想象成一個(gè)“空的容器”。
  2. merger.append('...'): 每調(diào)用一次 append,就會將一個(gè)PDF文件的所有頁面內(nèi)容追加到合并器容器的末尾。
  3. merger.write('...'): 將容器中所有積累的PDF數(shù)據(jù)流寫入指定的輸出文件名。

通過這種方式,原本需要多次點(diǎn)擊和等待的合并操作,現(xiàn)在可以在你的腳本中一瞬間完成。


八、將自動化工具共享化:用 fastapi 封裝為API服務(wù)

1. 痛點(diǎn):重復(fù)請求與工具的私有化

當(dāng)你成功構(gòu)建了強(qiáng)大的自動化腳本后,你的同事和團(tuán)隊(duì)成員很可能會不斷地找你,要求運(yùn)行或使用這些腳本。這相當(dāng)于把你的自動化成果變成了一個(gè)“私有工具”,而你成為了這個(gè)工具的“人工啟動器”。要讓工具真正“騰飛”,你需要將它共享化

2. 核心工具:高性能API框架 fastapi

fastapi 是一個(gè)現(xiàn)代、高性能的Web框架,專門用于構(gòu)建API服務(wù)。它速度極快、易于使用,并且自帶文檔功能。使用 fastapi,你可以將你的Python函數(shù)(例如數(shù)據(jù)清洗、報(bào)告生成函數(shù))封裝成一個(gè)可供公司內(nèi)部任何人調(diào)用的服務(wù)接口。

3. 實(shí)現(xiàn)原理與代碼示例:一個(gè)可被遠(yuǎn)程觸發(fā)的服務(wù)

這段代碼展示了如何用 fastapi 搭建一個(gè)簡單的API服務(wù),讓你的自動化功能可以被網(wǎng)絡(luò)上的任何客戶端通過HTTP請求觸發(fā)。

from fastapi import FastAPI

# 1. 創(chuàng)建 FastAPI 應(yīng)用程序?qū)嵗?app = FastAPI()

# 2. 定義一個(gè)API端點(diǎn)(Endpoint)
# 使用 @app.get('/clean-data') 裝飾器,將 clean_data 函數(shù)映射到 HTTP GET 請求的 /clean-data 路徑
@app.get('/clean-data')
def clean_data():
    # 假設(shè)這里是調(diào)用前面章節(jié)中的數(shù)據(jù)清洗函數(shù)
    # run_pandas_cleaning_script() 
    
    # 返回一個(gè) JSON 響應(yīng)
    return {'status': 'success', 'message': 'Data cleaned!'}
    
# 運(yùn)行服務(wù)后(例如:使用 uvicorn),任何人都可以通過訪問
# http://your-server-ip/clean-data 來觸發(fā)數(shù)據(jù)清洗自動化流程

原理分析:

  1. @app.get('/clean-data'): 這是一個(gè)路由裝飾器,它將下面的 Python 函數(shù) clean_data 綁定到了特定的URL路徑和HTTP方法(GET)上。
  2. 函數(shù)執(zhí)行: 當(dāng)有人訪問這個(gè)URL時(shí),clean_data 函數(shù)就會執(zhí)行。
  3. 服務(wù)化: 現(xiàn)在,公司內(nèi)的任何人,無論是另一個(gè)腳本、一個(gè)網(wǎng)頁應(yīng)用,還是一個(gè)簡單的API調(diào)用工具,都可以通過一個(gè)簡單的API調(diào)用來觸發(fā)你的自動化。

通過將自動化腳本轉(zhuǎn)化為API,你將一個(gè)私人的效率工具,升級成為了一個(gè)可擴(kuò)展、可共享、可被集成的團(tuán)隊(duì)級服務(wù)。


總結(jié):Python自動化帶來的深層自由

Python,確實(shí)是我在工作場所中發(fā)現(xiàn)的**最接近“超能力”**的東西。

我們回顧一下本文中展示的九大核心庫,它們都擁有各自的簡單性,但組合在一起,它們將手動操作的“苦工”轉(zhuǎn)化為了流暢、自動化的工作流程:

  1. 文件管理: os 和 pathlib
  2. 數(shù)據(jù)清洗: pandas
  3. 報(bào)告可視化: matplotlib
  4. 報(bào)告模板渲染: jinja2
  5. 郵件發(fā)送: smtplib
  6. 瀏覽器模擬: selenium
  7. 任務(wù)調(diào)度: schedule
  8. PDF處理: PyPDF2
  9. 服務(wù)共享: fastapi

自動化帶來的益處,遠(yuǎn)不止于節(jié)省時(shí)間。它最寶貴的饋贈是創(chuàng)造了空間——一個(gè)讓你得以進(jìn)行更深入、更有創(chuàng)造性工作的精神空間。一旦你嘗到了這種從重復(fù)性勞動中解放出來的自由,你就永遠(yuǎn)不會想回到過去那種繁瑣的工作方式。

行動建議: 從你每天重復(fù)三次以上的工作開始,用Python邁出你的自動化第一步。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多