学习使用python的zipfile和os

import os
import os.path
import zipfile


def YZQHW(inad, outad, id=None, hwid=None):
    '''
    将每次的作业写到同一个文件A中,每一个题目对应一个函数
    :param inad:要读取的文件A的地址
    :param outad: 输出压缩文件的地址
    :param id: 你的学号
    :param hwid: 第几次作业
    :return:没有返回值
    '''
    file = open(inad, encoding='utf-8')
    lines = file.readlines()
    file.close()
    i = 0
    fileid = 1
    while i < len(lines):

        if lines[i].find('def') != -1:
            j = i + 1
            t = [lines[i]]
            while j < len(lines) and lines[j].find('def') == -1:
                t += [lines[j]]
                j += 1
            # print(t)
            i = j - 1
            filename = outad + '\\' + str(id) + '-' + str(hwid) + '-' + str(fileid) + '.py'
            with open(filename, 'w') as myfile:
                myfile.writelines(t)
            fileid += 1
            print('homework' + str(fileid) + 'is finished')
        else:
            i += 1

    for dirpath, dirnames, filenames in os.walk(outad):
        for item in filenames:
            if item.endswith('.py'):
                print(item)

                z = zipfile.ZipFile(item.split('.')[0] + '.rar', 'w', zipfile.ZIP_DEFLATED)
                z.write(outad + '\\' + item, arcname=item)  # 实际上这里作为参数的目录结构会原封不动的转移到压缩文件中去
                z.close()
                print('extract one file')






if __name__ == '__main__':
    YZQHW(r'C:\Users\DELL\Desktop\qndy杨志强\MyPro\main1.py', r'C:\Users\DELL\Desktop\qndy杨志强\MyPro', 1851796, 5)
    pass
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值