2021-05-06 Python中级Day01
文件
1.文本文件:可以使用文本剪辑软件查看,如python源文件,记事本txt
2.二进制文件:不可以使用文本剪辑软件查看,比如图片,音频等
文件的基本操作
1.三个步骤:打开文件,读写文件,关闭文件
2.一个函数三个方法:函数open,方法read,write,close
open:打开文件,并返回文件操作对象
read :将文件内容读取到内存,read方法执行后,会把文件指针移动到文件的末尾
write : 将指定内容写入文件
close :关闭文件
read/write/close三个方法都需要通过文件对象来调用
3.read方法
a.打开文件,例子见下:
#open第一个参数是要打开的文件名,encoding='UTF-8'是字符编码一般是UTF-8#默认的路径
file = open("vw.txt",encoding='UTF-8')或
#指定路径,PS:路径前面加上r是为了后面就不用转义字符了
file = open(r'd:\46\vw.txt’,encoding='UTF-8')text=file.read()
print(text)file.close()
b.open函数详解
f = open("文件名", "访问方式"):频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以只读、只写的方式来操作文件
访问方式:
r |
只读方式打开文件(默认模式) |
指针在开头 | 文件不存在,抛出异常 |
w | 只写方式打开文件 |
文件存在,被覆盖 文件不存在,创建新文件 |
|
a | 追加方式打开文件 | 文件存在,指针放在结尾 | 文件不存在,创建新文件 |
r+ | 读写方式打开文件 | 指针放在开头 | 文件不存在,抛出异常 |
w+ | 读写方式打开文件 |
文件存在,被覆盖 文件不存在,创建新文件 |
|
a+ | 读写方式打开文件 | 文件存在,指针放在结尾 | 文件不存在,创建新文件 |
c.指针的变动
文件对象.seek(0) : 将文件指针移到开头
d.按行读取文件
read 方法默认会把文件的所有内容一次性读取到内存如果文件太大,对内存的占用会非常严重
readline方法可以一次读取一行内容方法执行后,会把文件指针移动到下一行,准备再次读取.比如
或者
或者:
文件和文件夹的常用操作
1.创建、重命名、删除、改变路径、查看目录内容。需要导入os模块
2.文件操作
- 文件重命名:os.rename(源文件名,目标文件名)
- 删除文件:os.remove(文件名)
3.目录操作
- 目录列表:os.listdir(目录名)
- 创建目录:os.mkdir(目录名)
- 删除目录:os.rmdir(目录名)
- 获取当前目录:os.getcwd()
- 判断是否是文件:os.path.isdir(文件路径)
作业1: 完成网页自动生成软件的制作,选择news.template的模板文件,点击生成网页按钮,在当前项目中生成以网页标题为文件名的.html文件,
import tkinter
import os
from tkinter import messagebox
import tkinter.filedialog
top=tkinter.Tk()
top.title('网页自动生成器')
top.config(bg='blanched almond')
sw=top.winfo_screenwidth()
sb=top.winfo_screenheight()
width=500
height=300
x=(sw-width)//2
y=(sb-height)//2
top.geometry('%dx%d+%d+%d'%(width,height,x,y))lexcel=tkinter.Label(top,text='选择模板文件:',font=('楷体',12),height=2,bg='blanched almond')
lexcel.grid(row=0,column=0)
eexcel=tkinter.Entry(top,font=('楷体',12),width=20)
eexcel.grid(row=0,column=1)
def choose():eexcel.delete(0,'end')file_path=tkinter.filedialog.askopenfilename(title='选择文件')eexcel.insert('end',file_path)
bexcel=tkinter.Button(top,text='选择',font=('楷体',12),bg='blanched almond',width=10,height=1,command=choose)
bexcel.grid(row=0,column=2)ltitle=tkinter.Label(top,text='网页标题:',font=('楷体',12),height=2,bg='blanched almond')
ltitle.grid(row=1,column=0)
etitle=tkinter.Entry(top,font=('楷体',12),width=20)
etitle.grid(row=1,column=1)lcontent=tkinter.Label(top,text='网页内容:',font=('楷体',12),height=2,bg='blanched almond')
lcontent.grid(row=2,column=0)
econcent=tkinter.Entry(top,font=('楷体',12),width=20)
econcent.grid(row=2,column=1)
def save():strname=eexcel.get()strtitle=etitle.get()strcontent=econcent.get()if str(strname)=='':messagebox.showinfo('选择提示','没有选择文件')elif str(strname).find('.template',0,len(str(strname)))==-1:messagebox.showinfo('选择提示','文件格式不正确')elif str(strtitle)=='':messagebox.showinfo('输入提示','输入标题')elif str(strcontent)=='':messagebox.showinfo('输入提示','输入内容')else:f=open(strname,encoding='UTF-8')text=f.read()f.close()text=text.replace('${title}',strtitle).replace('${content}',strcontent)file_path=r'%s%s.html'%(os.getcwd(),strtitle)fw=open(file_path,'w',encoding='UTF-8')fw.write(text)fw.close()messagebox.showinfo('成功提示','网页生成成功')
bsave=tkinter.Button(top,text='生成网页',bg='blanched almond',font=('楷体',12),width=10,height=1,command=save)
bsave.grid(row=3,column=1)
top.mainloop()
作业2:统计一个文件中单词的出现次数,并将内容和出现次数写入到另一个文件中
f=open(r'a.txt','r',encoding='utf-8')
data=f.readlines()
print(data)
datal=[]
for x in data:datal.append(x.splitlines()[0])
print(datal)
data2=datal.copy()
data2=set(data2)
f2=open(r'b.txt','a',encoding='utf-8')
for x in data2:sum=0for y in datal:if x==y:sum+=1data3='{0} {1}\n'.format(x,sum)f2.writelines(data3)
f.close()
2021-05-06 Python中级Day01相关推荐
- Go语言之禅 | Gopher Daily (2021.05.06) ʕ◔ϖ◔ʔ
每日一谚:Go is about being a language that focuses on code being readable. Go技术生态 Go语言之禅 - https://mp.we ...
- Python基础day01【软件安装、变量的定义和使用、数据类型、标识符和关键字、输入输出、数据类型转换、运算符、PEP 8 规范】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] 学习目标: 能够说出计算机有哪两部分组成 能够说出操作系统的作用 能够说出编程语言的作用 ...
- 2021年保育员(中级)考试题及保育员(中级)考试报名
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年保育员(中级)考试题为正在备考保育员(中级)操作证的学员准备的理论考试专题,每个月更新的保育员(中级)考试报名祝您顺利通 ...
- (干货)备战2021年软考中级网络工程师-04知识产权与标准化
备战2021年软考中级网络工程师-04知识产权与标准化 本文目录 一.前言 二.中级网络工程师复习笔记-04知识产权与标准化 (一)知识产权 1.著作权人的确定 2.著作权法保护对象 3.著作权保护期 ...
- 05、Python中转义字符与字符串
05.Python中转义字符与字符串操作函数 基于PyCharm 参考Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析 1.转义字符 2.字符串 单引号字符串: word ...
- 2021年保育员(中级)考试题库及保育员(中级)考试资料
题库来源:安全生产模拟考试一点通公众号小程序 保育员(中级)考试题库是安全生产模拟考试一点通总题库中随机出的一套保育员(中级)考试资料,在公众号安全生产模拟考试一点通上点击保育员(中级)作业手机同步练 ...
- 2021.05.27 发表自己第一篇技术文章
从昨晚开始做家庭财经系统.不要以为有系统两个字就怎么复杂,都是大家都会的.建库.建表. 第一个使用软件是mysql 2021.05.26 数据库 lianxi 已建好. 表 members_basic ...
- 2021年保育员(中级)考试内容及保育员(中级)考试资料
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:保育员(中级)考试内容是安全生产模拟考试一点通生成的,保育员(中级)证模拟考试题库是根据保育员(中级)最新版教材汇编出保育员(中级 ...
- 2021年保育员(中级)最新解析及保育员(中级)模拟考试题库
题库来源:安全生产模拟考试一点通公众号小程序 保育员(中级)最新解析考前必练!安全生产模拟考试一点通每个月更新保育员(中级)模拟考试题库题目及答案!多做几遍,其实通过保育员(中级)在线考试很简单. 1 ...
最新文章
- 年度重磅:《AI聚变:2018年优秀AI应用案例TOP 20》正式发布
- GIT常用命令以及使用详解图示
- 居然以反战的名义,利用开源工具包“投毒”!
- Linux_Command
- EasyUI中Combox组合框的简单使用
- Redis中的zset 有序集合
- 欢迎光临CAX软件二次开发开源社区!
- opengl 如何加阴影_一步步学OpenGL(23) -《阴影贴图1》
- 二分查找递归解法(java)
- html 播放flv js代码,js实现的万能flv网页播放器代码
- 获取计算机登录用户名和密码,查看电脑的登录用户名_查看电脑用户名和密码...
- lrzsz的交叉编译与使用
- 惊呆!200行代码就能实现的隐身术你见过么?
- 进入Java世界的第一个程序Hello world
- 云服务器/树莓派搭建我的世界Minecraft多人游戏服务器
- layui下载图片到本地
- ubutnu18+cuda11.1+cudnn8.0.4+nvidia-driver-465
- 基于STM32的动态天气时钟毕业设计
- CodeForces 13A - Numbers
- css实现(上、右、下、左)箭头