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
学习使用python的zipfile和os
最新推荐文章于 2023-04-22 20:29:37 发布