Python创建文件夹和空文本文件,遍历文件重命名并写入另一个文件夹,压缩文件夹和文件

import os
import shutil
import zipfile
import sys


def creat_folder(path):              # 创建文件夹,参数为文件夹存放的路径
    is_exist = os.path.exists(path)  # 判断该路径下文件夹是否存在
    if not is_exist:                 # 不存在就创建
        os.makedirs(path)
    else:
        print('目标文件夹已存在\n')
    print("已完成文件夹的创建\n")


def creat_file(path):                                   # 创建文件
    for i in range(1, 101):                             # 循环,i从1到101,创建1.txt....100.txt
        with open(path + str(i) + '.txt', 'w') as f:
            f.write('')
    print("已完成100个空文本文件的创建\n")


def copy_files(init_path, to_path):   # 重命名、复制文件 ,init_path为要复制的文件的路径,to_path为复制文件存放的路径
    for foldName, subFolders, filenames in os.walk(init_path):      # filenames为所有文件名的列表
        for filename in filenames:                                  # 遍历列表下的所有文件名
            # print(filename)                                       # 测试是否成功读取
            new_name = filename.replace(filename, 'Lab_'+filename)  # 为文件赋予新名字,不改变原来文件名字
            # print(new_name+'\n')                                  # 测试是否成功改名
            shutil.copyfile(os.path.join(init_path, filename), os.path.join(to_path, new_name))  # 复制并移动文件
    print("已完成100个空文本文件的改名并复制移动到output2文件夹\n")


# path_of_zip为创建的压缩文件的位置,path_of_content1为.py文件路径,path_of_content2为output1和output2的父文件夹路径
def compress_file(path_of_zip, path_of_content1, path_of_content2):
    _zip = zipfile.ZipFile(path_of_zip, 'w', zipfile.ZIP_DEFLATED)
    _zip.write(path_of_content1)  # 注意实参为os.path.basename(os.path.abspath(sys.argv[0])),只含有.py文件路径
    # 这里path为'E:\\Python\\output1'和'E:\\Python\\output2',filenames为1.txt...100.txt和Lab_1.txt...Lab_100.txt
    for path, dir_names, filenames in os.walk(path_of_content2):
        # f_path为'output1'和'output2'
        f_path = path.replace(path_of_content2, '')
        for filename in filenames:
            # os.path.join(path, filename)为E:\\Python\\output1\\i.txt和E:\\Python\\output2\\Lab_i.txt;
            # os.path.join(path, filename)为output1\\i.txt和output2\\Lab_i.txt
            _zip.write(os.path.join(path, filename), os.path.join(f_path, filename))
    _zip.close()


if __name__ == '__main__':
    creat_folder('E:\\Python\\output1')
    creat_file('E:\\Python\\output1\\')
    creat_folder('E:\\Python\\output2')
    copy_files('E:\\Python\\output1', 'E:\\Python\\output2')
    # os.path.basename(os.path.abspath(sys.argv[0]))返回本代码的.py文件路径
    compress_file('C:\\Users\\35116\\Desktop\\几米Python作业1(郭先达).zip',
                  os.path.basename(os.path.abspath(sys.argv[0])),
                  'E:\\Python')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

F l e

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

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

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

打赏作者

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

抵扣说明:

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

余额充值