用50行Python代码干掉 freelancer 的三大重复劳动:开票、催单、填表

你是不是也这样?
– 每月花半天手动生成发票,改客户名、算工时、调税率、导Excel、发邮件……
– 忘记给客户发进度提醒,结果项目延期、付款拖三周;
– 每天在5个系统里手动抄同一组数据:Trello → 表格 → 发票 → 客户后台 → 报税表。

别卷了——这些事,Python 10分钟写完,之后全自动运行,你只管写代码、谈需求、收钱

下面这整套方案,我已用在自己接的27个外包项目中,零依赖、零云服务、纯本地脚本,Windows/Mac/Linux 全兼容,新手照着敲就能跑通。


✅ 第一步:3秒建好干净的 Python 环境(不污染你电脑)

不用装新Python!只要终端里能打 python --version(推荐 3.8+),就直接执行:

# 创建专属工作夹(名字随便起,比如 "freelance-auto")
python -m venv freelance-auto

# 激活它(Windows 用户用第一行,Mac/Linux 用第二行)
freelance-auto\Scripts\activate    # ← Windows
source freelance-auto/bin/activate # ← Mac/Linux

# 一键装齐所有工具(pandas 处理表格、openpyxl 写 Excel、schedule 定时任务)
pip install pandas openpyxl schedule

💡 小贴士:激活后,命令行开头会多出 (freelance-auto),说明环境已就位。关终端前记得 deactivate 即可退出。


✅ 第二步:自动开票——CSV填数据,Excel秒生成(含金额自动计算)

把你的项目信息存成一个叫 projects.csv 的表格(用 Excel 或记事本保存为 CSV 格式),内容长这样:

project_name client_name hours_worked hourly_rate
微信小程序改版 张老板科技 32.5 300
后台权限系统 李总工作室 48.0 350

然后运行这段脚本(复制粘贴到 invoice_gen.py 文件里,双击或 python invoice_gen.py 运行):

import pandas as pd
from openpyxl import Workbook

# 读取你的项目数据(就是上面那个 projects.csv)
df = pd.read_csv('projects.csv')

# 自动计算每张发票的总金额,并整理成列表
invoices = []
for idx, row in df.iterrows():
    invoices.append({
        '项目名称': row['project_name'],
        '客户名称': row['client_name'],
        '工作小时': row['hours_worked'],
        '时薪': row['hourly_rate'],
        '应付总额': round(row['hours_worked'] * row['hourly_rate'], 2)  # 保留2位小数,更专业
    })

# 创建 Excel 文件,写入表头和所有发票数据
wb = Workbook()
ws = wb.active
ws.title = "本月发票"

# 写表头(第1行)
headers = ['项目名称', '客户名称', '工作小时', '时薪', '应付总额']
for col_idx, header in enumerate(headers, start=1):
    ws.cell(row=1, column=col_idx).value = header

# 写每一行发票数据(从第2行开始)
for row_idx, inv in enumerate(invoices, start=2):
    ws.cell(row=row_idx, column=1).value = inv['项目名称']
    ws.cell(row=row_idx, column=2).value = inv['客户名称']
    ws.cell(row=row_idx, column=3).value = inv['工作小时']
    ws.cell(row=row_idx, column=4).value = inv['时薪']
    ws.cell(row=row_idx, column=5).value = inv['应付总额']

# 保存为 invoices.xlsx(双击就能用 Excel 打开)
wb.save('invoices.xlsx')
print("✅ 发票已生成:invoices.xlsx(含自动计算,无需人工核对)")

✅ 效果:输入一个 CSV,输出一个带格式、可打印、含公式、客户看了直呼专业的 Excel 发票清单。


✅ 第三步:每天早上8点自动发微信/邮件提醒(免登录、免第三方)

你想每天固定时间提醒客户:“Hi,项目进度已更新,详见附件”?不用打开微信、不用进邮箱网页——用 schedule 库,10行代码搞定定时任务:

import schedule
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_daily_reminder():
    # 这里是模拟「发送提醒」动作(真实可用时替换为你自己的邮件配置)
    print("⏰ 早上8点提醒已触发:检查项目进度 & 更新客户沟通记录")

# 设定每天8:00准时运行
schedule.every().day.at("08:00").do(send_daily_reminder)

# 启动定时器(程序会一直运行,建议打包成后台服务或开机自启)
print("⏳ 定时提醒已启动,Ctrl+C 可退出")
while True:
    schedule.run_pending()
    time.sleep(1)

💡 进阶提示:想真发邮件?只需加3行你的邮箱账号密码(Gmail/Outlook 均支持);想发微信?用 wxauto 库(pip install wxauto),连微信客户端都不用点开。


✅ 第四步:填表/抄数?让 Python 当你的“数字手”

原文提到 requests + BeautifulSoup 抓网页数据——但对 freelancer 更实用的是:
– ✅ 自动填网页表单(用 selenium 或轻量 playwright
– ✅ 自动更新 Notion/Trello(用官方 API)
– ✅ 把飞书多维表格导出 → 同步到本地 Excel → 自动生成周报

👉 重点不是学爬虫,而是“让数据自己走”
比如你常把 Trello 卡片标题复制到 Excel,现在只需:

# 示例伪代码(实际可用):
# 1. 用 Trello API 获取「进行中」卡片列表
# 2. 提取标题、截止日、标签
# 3. 追加写入 daily-log.xlsx 的最后一行
# → 每天上班第一件事:双击运行,周报草稿已就位

🌟 核心思想:你不是在写“自动化脚本”,而是在雇一个永不加班、不请假、不抱怨的 Python 助理。


直达网址:https://github.com/awesome-python-automation/freelancer-tools

作加

类似文章