当前位置: 首页 > news >正文

Python之文件与文件夹操作及 pytest 测试习题

目录

    • 1、文本文件读写基础。编写程序,在 当前目录下创建一个文本文件 test.txt,并向其中写入字符串 hello world。
    • 2、编写一个程序 demo.py,要求运行该程序后,生成 demo_new.py 文件,其中内容与demo.py 一样,只是在每一行的后面加上行号。要求行号以#开始,并且所有行的#符号垂直对齐
    • 3、编写程序,使用pickle模块将包含学生成绩的字典保存为二进制文件,然后再读取内容并显示。
    • 4、计算文件 MD5 的值。MD5 是一种常用的哈希算法,不论原始信息长度如何,总是计算得到一个固定长度的二进制字符串。该算法对原文的改动非常敏感,因此该算法被用于检验信息是否被修改过,用于文件完整性检验,或者数字签名。
    • 5、统计三国演义中高频词

1、文本文件读写基础。编写程序,在 当前目录下创建一个文本文件 test.txt,并向其中写入字符串 hello world。

from pathlib import Path
currentPath=Path.cwd()path=currentPath/'test.txt'
with path.open('w') as f:f.write('hello world')

在这里插入图片描述

2、编写一个程序 demo.py,要求运行该程序后,生成 demo_new.py 文件,其中内容与demo.py 一样,只是在每一行的后面加上行号。要求行号以#开始,并且所有行的#符号垂直对齐

with open('demo01.py','r') as f:content=f.readlines()maxlength=len(max(content,key=len))# enumerate同时列出数据和下标
# ljust返回一个原字符串左对齐
with open('demo_new.py','w') as f2:for i,line in enumerate(content):f2.write(line.rstrip().ljust(maxlength)+'#'+str(i+1)+'\n')

在这里插入图片描述

3、编写程序,使用pickle模块将包含学生成绩的字典保存为二进制文件,然后再读取内容并显示。

import pickle as p
student={'大明',10101,'二班','班长'}
# wb二进制写方式打开文件,只能写文件
# rb二进方式读取文件
# dumps读入数据并序列化
# loads以数列化数据读出
with open('student.dat','wb') as s:data=p.dumps(student)s.write(data)s.close()
with open('student.dat','rb') as ss:dirt=ss.read()ss.close()dirt=p.loads(dirt)print(dirt)

在这里插入图片描述

4、计算文件 MD5 的值。MD5 是一种常用的哈希算法,不论原始信息长度如何,总是计算得到一个固定长度的二进制字符串。该算法对原文的改动非常敏感,因此该算法被用于检验信息是否被修改过,用于文件完整性检验,或者数字签名。

Python 标准库 hashlib 中 md5()函数可以用来计算字节串的 MD5 值。编写一个程序,
要求输入一个文件名,然后输出该文件的 MD5 值,如果文件不存在就给出相应提示

import hashlib as ha
import os
# hexdigest()用于获取哈希对象的十六进制摘要。
file=input("输入文件路径:")if os.path.exists(file):with open(file,'r') as f:data=f.read()data_md5=ha.md5(data.encode(encoding='UTF-8')).hexdigest()print(data_md5)
else:print("没有该文件")

在这里插入图片描述

5、统计三国演义中高频词

下载《三国演义》电子文本(也可从烟台大学本课程教学网站实验栏目中下载)。使用
jieba 库对文件“三国演义.txt”中的文本进行分词,并对每个词出现的次数进行统计,将词频
最高的前三个词语输出。运行效果如下。
输入:无
输出:[(934, ‘曹操’), (831, ‘孔明’), (761, ‘将军’)]

import jieba
txt = open("sanguo.txt", "r", encoding = "utf-8").read()
words = jieba.lcut(txt)
counts = {}
for word in words:if len(word) == 1:continueelse:counts[word] = counts.get(word, 0) + 1
items = list(counts.items())
items.sort(key = lambda x:x[1], reverse = True)
for i in range(3):word, count = items[i]# 第一个字符宽度10,第二个字符宽度5。格式化输出print("{0:<10}{1:>5}".format(word, count))

在这里插入图片描述

http://www.lryc.cn/news/227291.html

相关文章:

  • 物联网:实现数据驱动决策,推动经济发展
  • Leetcode 2929. Distribute Candies Among Children II
  • 【面经】ES中分片是什么?副本是什么?
  • 【算法练习Day46】判断子序列不同的子序列
  • Java设计模式之访问者模式
  • PySide/PYQT如何用Qt Designer和代码来设置文字属性,如何设置文字颜色?
  • ubuntu 设置最大带宽
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
  • Django配置文件,request,链接mysql方法,Orm简介
  • ubuntu下载各个版本chrome方法
  • Http状态码502常见原因及排错思路(实战)
  • 国际阿里云:无法ping通ECS实例公网IP的排查方法!!!
  • Nginx缓存基础
  • 【数据结构】Lambda
  • 力扣labuladong——一刷day28
  • 2023年CCF非专业级别软件能力认证第二轮 (CSP-S)提高级C++语言试题
  • 华为ensp:静态默认路由
  • xss 通过秘籍
  • Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)
  • Flutter笔记:光影动画按钮、滚动图标卡片组等
  • 【论文】利用移动性的比例公平蜂窝调度测量和算法
  • 内存条选购注意事项(电脑,笔记本)
  • ChatGPT 宕机?OpenAI 将中断归咎于 DDoS 攻击
  • go单元格测试
  • JavaScript理解表达式和语句的含义
  • Visual Studio导入Wiinform项目文件,引用显示黄色感叹号
  • 深入研究SVN代码检查的关键工具:svnchecker vs. SonarQube,选择最适合你的代码检查工具
  • 博客积分上一万一千了
  • docker 构建并运行 python项目
  • django建站过程(4)创建文档显示页面