用三段 Python 脚本搞定接单、记工时、开票——自由开发者的真实提效流水线

👉 工具网址:https://developer.trello.com/

🧩 第一段:自动给 Trello 卡片加任务(告别手打评论)

你不用登录 Trello 点来点去。只要告诉脚本“这张卡该干啥”,它就自动在卡片底下留一条评论,像这样:

“Implement feature X”

import requests

# Trello API 凭证(去 https://trello.com/app-key 申请,填在这里)
api_key = "your_api_key"      # ← 替换成你的 Key
api_token = "your_api_token"  # ← 替换成你的 Token
board_id = "your_board_id"    # ← 你的项目看板 ID
list_id = "your_list_id"      # ← 你的待办列表 ID(比如“进行中”)

# 把任务文字自动发到某张卡片下(就像你手动评论一样)
def assign_task(card_id, task_name):
    url = f"https://api.trello.com/1/cards/{card_id}/actions/comments"
    headers = {
        "Authorization": f"Bearer {api_token}",  # 用 Token 验证身份
        "Content-Type": "application/json"
    }
    data = {
        "text": task_name  # 要写的任务内容
    }
    response = requests.post(url, headers=headers, json=data)
    if response.status_code == 200:
        print(f"✅ 任务 '{task_name}' 已成功写入卡片 {card_id}")
    else:
        print(f"❌ 写入失败:{response.text}")  # 打印错误原因,方便调试

# ✅ 实际怎么用?填上你的卡片 ID 和任务名,运行就行:
card_id = "your_card_id"   # ← 比如 'abcd1234efgh5678'
task_name = "Implement feature X"
assign_task(card_id, task_name)

💡 小技巧:把它存成 assign.py,每天早上双击运行,或用系统定时任务(Windows 任务计划程序 / macOS cron)自动执行。


⏱️ 第二段:自动记工时(不用 Excel 手动填)

再也不用翻聊天记录找“几点开始改 bug”。这个脚本把你每次干活的起止时间,自动存进一个叫 work_hours.log 的表格文件里,格式清爽,打开就能看:

project_name start_time end_time work_hours
Client X Project 2023-03-01 09:00 2023-03-01 17:00 8:00:00
import datetime
import csv

# 把一次工作记录存进 CSV 文件(会自动创建表头)
def log_work_hours(project_name, start_time, end_time):
    work_hours = end_time - start_time  # 算出花了多久(精确到秒)
    with open("work_hours.log", "a", newline="") as csvfile:  # 追加模式,不覆盖旧记录
        fieldnames = ["project_name", "start_time", "end_time", "work_hours"]
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        if csvfile.tell() == 0:  # 如果文件是空的,先写表头
            writer.writeheader()
        writer.writerow({
            "project_name": project_name,
            "start_time": start_time.strftime("%Y-%m-%d %H:%M"),  # 格式化为易读时间
            "end_time": end_time.strftime("%Y-%m-%d %H:%M"),
            "work_hours": str(work_hours)  # 直接存字符串,避免类型问题
        })

# ✅ 实际怎么用?填上项目名和起止时间(秒级精度可选),运行就存好:
project_name = "Client X Project"
start_time = datetime.datetime(2023, 3, 1, 9, 0)   # 3月1日 上午9点
end_time = datetime.datetime(2023, 3, 1, 17, 0)    # 3月1日 下午5点
log_work_hours(project_name, start_time, end_time)

📌 提示:你可以把 start_time = datetime.datetime.now() 放在开工前运行,end_time = datetime.datetime.now() 放在收工时运行,全程零手动!


📄 第三段:自动生成发票(PDF 文件直接生成)

⚠️ 注意:原始代码只写了个 .pdf 文本文件(不是真 PDF)。我们立刻升级为真正可用的版本——用更轻量、新手友好的 fpdf2 库(一行命令就能装好):

pip install fpdf2

然后用下面这个脚本,运行后直接生成带编号、日期、金额的正式发票 PDF(打开就能发客户):

from fpdf import FPDF
import datetime

# ✅ 真·生成 PDF 发票(无需 Word 或 Excel)
def generate_invoice(project_name, client_name, work_hours, hourly_rate):
    invoice_date = datetime.date.today()
    invoice_number = f"INV-{invoice_date.strftime('%Y%m%d')}-{hash(project_name) % 10000:04d}"  # 更靠谱的单号
    invoice_amount = round(work_hours * hourly_rate, 2)

    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size=12)

    # 写标题
    pdf.cell(200, 10, txt=f"INVOICE #{invoice_number}", ln=True, align='C')
    pdf.ln(5)

    # 写信息
    pdf.cell(200, 10, txt=f"Date: {invoice_date}", ln=True)
    pdf.cell(200, 10, txt=f"Client: {client_name}", ln=True)
    pdf.cell(200, 10, txt=f"Project: {project_name}", ln=True)
    pdf.ln(5)

    # 写明细
    pdf.cell(200, 10, txt=f"Work Hours: {work_hours} h", ln=True)
    pdf.cell(200, 10, txt=f"Rate: ${hourly_rate:.2f} / hour", ln=True)
    pdf.cell(200, 10, txt=f"Amount Due: ${invoice_amount:.2f}", ln=True)
    pdf.ln(10)

    pdf.cell(200, 10, txt="Thank you for your business!", ln=True, align='C')

    # 保存为 PDF(文件名清晰好找)
    filename = f"{invoice_number}_to_{client_name.replace(' ', '_')}.pdf"
    pdf.output(filename)
    print(f"✅ 发票已生成:{filename}")

# ✅ 实际怎么用?填上客户、项目、工时、单价,运行就出 PDF:
generate_invoice(
    project_name="Client X Project",
    client_name="Acme Corp",
    work_hours=8.5,
    hourly_rate=85.0
)

✅ 效果:运行完,当前文件夹多出一个 INV-20240520-1234_to_Acme_Corp.pdf,双击就能打开打印或微信发送。


这三段脚本,就是提米哥自己每天在用的「自由职业最小闭环」:
– 接单 → 自动同步任务到 Trello
– 干活 → 自动记下每一分时间
– 收尾 → 自动吐出专业发票

没有复杂框架,不依赖 SaaS 订阅,全开源、全本地、全可控。
你不需要成为 Python 大神——只需要改几行文字,就能把每月 10 小时的杂事,压缩成 1 分钟点击。

直达网址:https://developer.trello.com/

作加

类似文章