【python】【任务计划程序】将一个python程序(将一个指定的压缩包解压,并复制内部的文件到指定的路径下)打包成.exe并指定自动间隔执行任务

0、WIN11中,快速复制到一个文件的完整路径

在这里插入图片描述
复制到的文件地址,自带两端的双引号。

1、在anaconda的base环境中安装需要的库rarfile

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rarfile

2、将一个指定的压缩包解压到.py所在路径下

 import os
import rarfile

rar_path = r"压缩包文件的路径"
rarfile.UNRAR_TOOL = "UnRAR.exe文件所在的路径"

rf = rarfile.RarFile(rar_path)

# 列出 RAR 文件中的内容
for file_info in rf.infolist():
    print(file_info.filename)

rf.close()

3、改进:将压缩包的文件解压到压缩包所在的路径下

import os
import shutil
import tempfile
import rarfile

# 指定要解压的.rar文件的路径
rar_path = r"压缩包文件的路径"
rarfile.UNRAR_TOOL = "UnRAR.exe文件所在的路径"

# 获取.rar文件所在的目录
destination_folder = os.path.dirname(rar_path)

# 创建一个临时文件夹
temp_dir = tempfile.mkdtemp()

# 创建rarfile对象
rf = rarfile.RarFile(rar_path)

# 解压.rar文件到临时文件夹
rf.extractall(temp_dir)

# 关闭rarfile对象
rf.close()

# 将临时文件夹中的内容移动到目标文件夹
for item in os.listdir(temp_dir):
    src_path = os.path.join(temp_dir, item)
    dest_path = os.path.join(destination_folder, item)
    shutil.move(src_path, dest_path)

# 删除临时文件夹
shutil.rmtree(temp_dir)

4、改进:将解压后文件夹最里层的所有文件,复制到压缩包所在的同级目录中(有同名时替换)

当目标路径中存在同名文件时,我们需要替换这些文件。shutil.move() 函数已经具有覆盖同名文件的功能。

import os
import shutil
import tempfile
import rarfile

def recursively_move_files(src, dest):
    for item in os.listdir(src):
        src_path = os.path.join(src, item)
        dest_path = os.path.join(dest, item)

        if os.path.isdir(src_path):
            recursively_move_files(src_path, dest)
        else:
            shutil.move(src_path, dest_path)

# 指定要解压的.rar文件的路径
rar_path = r"压缩包文件的路径"
rarfile.UNRAR_TOOL = "UnRAR.exe文件所在的路径"

# 获取.rar文件所在的目录
destination_folder = os.path.dirname(rar_path)

# 创建一个临时文件夹
temp_dir = tempfile.mkdtemp()

# 创建rarfile对象
rf = rarfile.RarFile(rar_path)

# 解压.rar文件到临时文件夹
rf.extractall(temp_dir)

# 关闭rarfile对象
rf.close()

# 递归地将临时文件夹中的内容移动到目标文件夹
recursively_move_files(temp_dir, destination_folder)

# 删除临时文件夹
shutil.rmtree(temp_dir)

5、将这个代码打包成.exe,并给定一个自动指定的时间,每隔一段时间就自动执行一次

步骤1、用pyinstaller打包成.exe

该.py文件的名称为“jiayesuo.py”

pyinstaller --onefile jiayesuo.py

在 PyCharm 中,打开一个终端窗口(View -> Tool Windows -> Terminal)来运行此命令
在这里插入图片描述
也可以在.py所在位置cmd中执行,.exe最终生成在dist文件夹下
在这里插入图片描述

步骤 2:使用 Windows Task Scheduler 创建定时任务

  • 打开 Windows Task Scheduler(任务计划程序)。

  • 在右侧的操作窗格中,单击“创建基本任务”。 为任务指定一个名称和描述,然后单击“下一步”。

  • 设置触发器。选择“每天”或“每周”作为触发器,具体取决于您希望多久执行一次任务。单击“下一步”。
    在这里插入图片描述

  • 指定任务开始时间和日期,以及重复间隔(例如,每天、每小时等)。单击“下一步”。

  • 选择“启动程序”作为操作的类型,然后单击“下一步”。

  • 单击“浏览”按钮,然后选择在步骤 1 中生成的 .exe 文件。单击“下一步”。

  • 确认任务设置,并单击“完成”以创建任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 下面是一个示例代码,可以在 Python 中将一个文件夹下所有的 py 文件复制一个指定文件中。 首先,使用 `os.listdir` 函数获取文件夹下的所有文件名,然后遍历文件名列表,如果文件名以 `.py` 结尾,则将文件内容读取出来,并使用 `file.write` 函数写入到指定文件中。 ```python import os # 要复制文件路径 source_folder = '/path/to/source/folder' # 目标文件路径 target_file = '/path/to/target/file.txt' # 打开目标文件,准备写入 with open(target_file, 'w') as target: # 遍历文件夹下的所有文件名 for filename in os.listdir(source_folder): # 如果文件名以 .py 结尾 if filename.endswith('.py'): # 读取文件内容 with open(os.path.join(source_folder, filename), 'r') as source: content = source.read() # 写入到目标文件中 target.write(content) ``` 注意: - 这段代码只能将文件内容复制到目标文件中,并不会将文件复制到目标文件夹下。 - 如果要在 Python复制文件,可以使用 `shutil` 模块中的 `copy` 函数。 - 如果要在 Python 中遍历文件夹下的所有文件和子文件夹,可以使用 `os.walk` 函数。 希望这些信息能帮到你! ### 回答2: 你可以使用Python中的shutil模块来完将某个文件夹下的所有py文件复制一个指定文件中的任务。具体的实现步骤如下: 1. 首先,导入shutil模块: ```python import shutil ``` 2. 定义一个函数,用来将文件夹下的所有py文件复制一个指定文件中。函数的参数为源文件路径和目标文件路径: ```python def copy_py_files(source_folder, target_file): ``` 3. 使用os模块的listdir()方法获取源文件夹下的所有文件文件夹列表: ```python file_list = os.listdir(source_folder) ``` 4. 遍历文件列表,判断每个文件是否为py文件,并将其复制到目标文件中: ```python for file in file_list: if file.endswith(".py"): source_file = os.path.join(source_folder, file) shutil.copy(source_file, target_file) ``` 5. 最后,在主程序中调用这个函数,并传入源文件路径和目标文件路径即可: ```python copy_py_files("源文件路径", "目标文件路径") ``` 总结起来,以上就是使用Python将某个文件夹下所有的py文件复制一个指定文件中的方法。通过调用shutil模块的copy()方法,可以实现文件复制操作。 ### 回答3: 你可以使用Python中的shutil库来实现将某个文件夹下所有的.py文件复制一个指定位置的功能。具体步骤如下: 1. 首先,导入shutil库: ```python import shutil ``` 2. 然后,定义一个函数,接收两个参数:源文件路径和目标文件路径: ```python def copy_all_py_files(source_folder, target_file): ``` 3. 在函数中,使用os库的walk方法遍历源文件夹下的所有文件文件夹: ```python for root, dirs, files in os.walk(source_folder): ``` 4. 对于每个文件文件夹,判断是否为.py文件,如果是的话,将其复制到目标文件中: ```python for file in files: if file.endswith(".py"): shutil.copy2(os.path.join(root, file), target_file) ``` 5. 最后,在主程序中调用该函数,传入源文件路径和目标文件路径: ```python source_folder = "源文件路径" target_file = "目标文件路径" copy_all_py_files(source_folder, target_file) ``` 这样,所有的.py文件就会被复制指定的目标文件中了。注意,如果目标文件已经存在,会被覆盖。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hmywillstronger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值