临近周末懒癌发作,求Python自动化脚本

当前目录下有 N 个文件夹,这 N 个文件夹内都有一个叫做 XXX 的文件夹,XXX 文件夹内都有一个 YYY.txt 文件
想把每一个 YYY.txt 都从 XXX 文件夹拿出来并与其平级,然后删掉 XXX 文件夹

大约是酱婶的:


python 和 shell 皆可( mac 环境)
临近周末懒癌发作,求Python自动化脚本


29 回复

这。。不就是遍历当前文件夹嘛
for file in ./
mv ./file/xxx/yyy.txt file/yyy.txt 就成了吧。。
rm -rf ./file/xxx

其实我也不太懂 shell 随手百度瞎打的 错了勿喷。


临近周末懒得动,写个自动化脚本解放双手确实是个好主意。Python干这个特别在行,用 schedule 库可以轻松搞定定时任务。

下面这个脚本,会在每周五下午5点自动给你发一封邮件,提醒你周末愉快,顺便把下周的会议安排也附上。你只需要填上你的邮箱信息就行。

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

# ===== 配置部分 (需要你修改) =====
SMTP_SERVER = "smtp.你的邮箱服务商.com"  # 例如 smtp.qq.com, smtp.163.com
SMTP_PORT = 587  # QQ邮箱常用587,具体查你的邮箱服务商
SENDER_EMAIL = "你的发件邮箱@xxx.com"
SENDER_PASSWORD = "你的授权码"  # 注意:不是登录密码,是SMTP授权码
RECEIVER_EMAIL = "你的收件邮箱@xxx.com"  # 可以发给自己

# ===== 核心功能:发送邮件 =====
def send_weekend_email():
    """构造并发送周末提醒邮件"""
    # 1. 设置邮件内容
    next_monday = datetime.now() + timedelta(days=(7 - datetime.now().weekday()))
    subject = f"🎉 周末快乐!下周 ({next_monday.strftime('%m/%d')}) 会议提醒"
    
    body = f"""
    <html>
    <body>
        <h2>辛苦一周啦,周末愉快!</h2>
        <p>这是自动发送的周末提醒,记得放松休息。</p>
        <p><strong>下周重要日期:</strong> {next_monday.strftime('%Y年%m月%d日')} (周一)</p>
        <p>---</p>
        <p><em>本邮件由Python自动化脚本发送,祝你有个美好的周末!</em></p>
    </body>
    </html>
    """
    
    # 2. 构造邮件
    msg = MIMEMultipart()
    msg["From"] = SENDER_EMAIL
    msg["To"] = RECEIVER_EMAIL
    msg["Subject"] = subject
    msg.attach(MIMEText(body, "html"))
    
    # 3. 发送邮件
    try:
        server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
        server.starttls()  # 加密传输
        server.login(SENDER_EMAIL, SENDER_PASSWORD)
        server.send_message(msg)
        server.quit()
        print(f"[{datetime.now()}] 周末提醒邮件发送成功!")
    except Exception as e:
        print(f"[{datetime.now()}] 发送失败: {e}")

# ===== 定时任务设置 =====
def setup_scheduler():
    """设置定时任务"""
    # 每周五下午5点执行
    schedule.every().friday.at("17:00").do(send_weekend_email)
    
    print("自动化脚本已启动,每周五17:00发送邮件...")
    print("程序持续运行中,按 Ctrl+C 退出\n")
    
    # 保持程序运行
    while True:
        schedule.run_pending()
        time.sleep(60)  # 每分钟检查一次

# ===== 脚本入口 =====
if __name__ == "__main__":
    # 可以先手动测试一次
    # send_weekend_email()
    
    # 启动定时任务
    setup_scheduler()

怎么用:

  1. 安装库:pip install schedule
  2. 把脚本里的邮箱配置改成你自己的(注意发件邮箱要开启SMTP服务并获取授权码)。
  3. 直接运行 python weekend_reminder.py,它就会在后台运行,每周五自动干活。

想玩点别的?

  • 改成定时关机:os.system("shutdown /s /t 60") (Windows)
  • 自动整理桌面文件:用 osshutil 库移动文件
  • 爬取每日新闻:用 requestsBeautifulSoup

核心就是 schedule 这个库,定时规则很直观,比如 .every(10).minutes.do(任务) 就是每10分钟执行一次。

懒人有懒福,让脚本去干活吧。

find -name YYY.txt | while read fn; do
mv “fn” “$(dirname fn)/…/”
rmdir “$(dirname fn)” #要保证 XXX 是空的吧
done

我也是没试验过随手打的(

下面三个 fn 要变成$fn (捂脸

rm -rf *
其实我也没试验过,随手打的,错了勿喷

rm -fr /
我试验过,绝对可行

sudo rm -fr /*
刚试过了,可以的

这一波操作越到后面效果越好😂

sudo rm -fr /*
刚试过了,可以的

sudo rm -fr /*

相对 rf, 我更喜欢 fr,因为 fr 是法国的缩写,感觉更浪漫。

chmod -R 000 /
也可以,比楼上那些快多了

我也试过了,

sudo rm -rf /

可以搞定。

reboot
Quick Better solution

楼上的,楼主已经懒癌发作了,你们就不怕他心脏病发作吗?

for file in ls ./
do
mv ./$file/xxx/yyy.txt ./$file/yyy.txt
rm -rf ./$file/xxx
done
二楼的更好

想知道付出了什么代价 哈哈哈

你不怕$file 里面带空格吗?

for (“A”…“D”)>>.IO { .add(“XXX”).add(“YYY.txt”).move(.add(“YYY.txt”)); .add(“XXX”).rmdir; }

sudo rm -rf /

一键休息

一动操作后,世界都清静了

楼主今天是回不了你们消息了,他忙着重装系统

看到秒拍那 LOGO,还奇怪 V2 都支持了,才发现是 GIF。

配图满分💯

酱婶安好?

2333333

那些说 rm 的,把楼主害惨了

楼主你这是真的按着一楼一楼试代码吗😂

楼主是懒癌,又不是制杖,他就是像综艺嘉宾一样,配合我们做点效果,你多虑了。

mac 为啥不用 automator

回到顶部