python快速移动文件——添加到鼠标右键菜单

懒惰是最大的动力(好像是诶)

一、懒惰行为解释

为了节省去特定文件夹移动文件的时间,所以写了一个脚本。

二、效果预览

看见那个QQ files move to here了吗,我懒得PS,你自己慢慢悟

三、过程

1、代码

import os
import shutil
import tkinter as tk
import tkinter.font as tfont
# import win32con, win32api
import time
import pyautogui
# from pynput.mouse import Listener
# import subprocess
import sys

# 获取鼠标所在位置,为了定位
mouse_x, mouse_y = pyautogui.position()

# 弹出的提示个数
prompt_number = 0


# 剪切到指定位置
def cut_file(new_directory):

    old_directory = r"C:\Users\57493\AppData\Local\Packages\903DB504.QQ_a99ra4d2cbcxa\LocalState\User\574937561\NetworkFile"

    for i in os.listdir(old_directory):

        if i != "Preview" and i != "Temp" and i != "Thumbnail":

            old_path = os.path.join(old_directory, i)

            new_path = os.path.join(new_directory, i)

            result = shutil.move(old_path, new_path)

            if not result:

                view_warning("文件“" + i + "”转移失败!可能是文件不存在或者其它原因!")

                continue

    view_warning("成功!")

    return 0


# 失败提示
def view_warning(text):

    global mouse_y

    time_start = time.time()

    tk0 = tk.Tk()

    tk0.title("提示")

    # 去掉边框
    tk0.overrideredirect(True)

    font = tfont.Font(family="楷体", size=12)

    width, height = 400, 300

    # 获取屏幕的长和宽
    # screen_width = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)
    # screen_height = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)

    # 提示在屏幕的位置(x,y)
    location_x = int(mouse_x - width / 2)
    location_y = int(mouse_y - height / 5)

    tk0.geometry("+" + str(location_x) + "+" + str(location_y))

    mouse_y = mouse_y - 30

    tk.Label(tk0, text=text, font=font).pack(anchor=tk.CENTER)

    # 若隐又若现,你还想看见(押韵了)
    for i in range(1, 11):
        # 窗口透明度
        tk0.attributes("-alpha", 0.1 * i)

        time.sleep(0.1)

        tk0.update()

    for i in range(10, -1, -1):
        # 窗口透明度
        tk0.attributes("-alpha", 0.1 * i)

        time.sleep(0.1)

        tk0.update()

    # 定时爆破提示,这样函数才能有返回值
    if time.time() - time_start >= 2.2:

        tk0.quit()

        tk0.destroy()

        mouse_y = mouse_y - 40

        return 0

    # 固定窗口大小
    tk0.resizable(0, 0)

    tk0.mainloop()

    return 0


if __name__ == "__main__":

    # 捕捉外部参数,并执行后续操作,argv[0]是程序本身
    cut_file(sys.argv[1])

2、打包成exe程序(用Cmd执行)

pyinstaller -F "Z:\PY_Files\DODODO\test7.py" -w -i "Z:\PY_Files\DODODO\icon.ico" --distpath "Z:\PY_Files"
# -F后面是python文件的位置,-i是图标的位置,--distpath是保存地址,-w取消黑框框(DOS)

3、添加到注册表中

在这里插入图片描述

# 默认项的值是显示在右键
# Icon是图标的地址,可以直接用.exe的图标

在这里插入图片描述

# command是要执行的命令,指向程序地址

在这里插入图片描述

# %V意思是将文件地址传递给程序,然后系统再执行打开程序的命令
# 其它的命令我也不是太懂,这也是一点点试的,可以参考其它程序是怎么写的

四、总结

本来是要展示利用pyinstaller自动打包.exe程序代码的,结果下午测试代码出Bug,害我在浪费了一个多小时找问题,下次有时间再展示。程序实现后功能就是剪切,我就不展现了。

加油、努力。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值