- 实验内容
- 编写一个程序:
a. 这个程序会在源代码所在文件夹创建一个新的文件夹名称为outputForLab3
b. 程序会在outputForLab3文件夹里面创建50个txt文件
(1) 这50个txt文件的文件名由英文字母和数字构成,随机生成5位长度文件名
(2) 这50个txt文件里面随机写入不同的内容,做到大小不一。比如有的文件3行内容,有的文件500行内容。
c. 创建完成以后,程序会读取这50个文件的文件路径和大小,把这些数据逐行写入filesize.txt文件中保存起来,filesize.txt存在outputForLab3文件夹外面,也就是你源代码所在文件夹。
d. 用zipfile库把outputForLab3文件夹里面的文件打包成一个zip压缩包,取名称为output3.zip
e. 用正则表达式读取filesize.txt里面的文件大小信息,把里面所有文件的大小加起来和output3.zip的大小进行比较。看哪一个大,并输出两者大小的差距,计算打印zip的压缩率。 - 编写一个程序:
a. 这个程序会读取第一个题目中程序创建的filesize.txt,把里面的文件按照文件大小从小到大进行排列,找到里面排在第40的文件,打印出文件路径和文件大小
b. 如果文件中,在任何一行开始的地方有“-d-”这3个字符,程序就把这一行文件路径的文件删除了,并记录下删除文件的文件路径,filesize.txt文件浏览完,删除完成所有带有-d-符合的文件后,打印出删除文件的文件路径,一行打印一个文件路径。 - 实验步骤和结果
- 要求涉及文件打开操作的,要用with statement
用python解决以下问题,尽量简单易懂
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-Plio大咸鱼 2021-11-28 14:52关注
import os import string import random import zipfile pool = string.ascii_lowercase + string.digits root = 'outputForLab3' count_file = 'filesize.txt' zip_file = 'output3.zip' file_size = 0 zip_size = 0 def random_select(k): return ''.join(random.choices(pool, k=k)) print(pool) if not os.path.exists(root): os.mkdir(root) for i in range(50): rd = random_select(5) with open(os.path.join(root, rd+'.txt'), 'w+') as f: f.write(random_select(random.randint(10**3, 10**5))) # pass z = zipfile.ZipFile(zip_file, 'w') with open(count_file, 'w+') as out: for p, d, f in os.walk(root): for file in f: out.writelines(os.path.join(p, file)+' size:' + str(os.path.getsize(os.path.join(p, file)))+'\n') file_size += os.path.getsize(os.path.join(p, file)) z.write(os.path.join(p, file)) z.close() zip_size = os.path.getsize(zip_file) print(file_size, zip_size, file_size-zip_size, (file_size-zip_size)/file_size)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
- ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
- ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
- ¥30 3天&7天&&15天&销量如何统计同一行
- ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
- ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
- ¥15 vs2019中数据导出问题
- ¥20 云服务Linux系统TCP-MSS值修改?
- ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
- ¥20 怎么在stm32门禁成品上增加查询记录功能