• 文件

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相关推荐

  1. Go语言之禅 | Gopher Daily (2021.05.06) ʕ◔ϖ◔ʔ

    每日一谚:Go is about being a language that focuses on code being readable. Go技术生态 Go语言之禅 - https://mp.we ...

  2. Python基础day01【软件安装、变量的定义和使用、数据类型、标识符和关键字、输入输出、数据类型转换、运算符、PEP 8 规范】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员]      学习目标: 能够说出计算机有哪两部分组成 能够说出操作系统的作用 能够说出编程语言的作用 ...

  3. 2021年保育员(中级)考试题及保育员(中级)考试报名

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年保育员(中级)考试题为正在备考保育员(中级)操作证的学员准备的理论考试专题,每个月更新的保育员(中级)考试报名祝您顺利通 ...

  4. (干货)备战2021年软考中级网络工程师-04知识产权与标准化

    备战2021年软考中级网络工程师-04知识产权与标准化 本文目录 一.前言 二.中级网络工程师复习笔记-04知识产权与标准化 (一)知识产权 1.著作权人的确定 2.著作权法保护对象 3.著作权保护期 ...

  5. 05、Python中转义字符与字符串

    05.Python中转义字符与字符串操作函数 基于PyCharm 参考Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析 1.转义字符 2.字符串 单引号字符串: word ...

  6. 2021年保育员(中级)考试题库及保育员(中级)考试资料

    题库来源:安全生产模拟考试一点通公众号小程序 保育员(中级)考试题库是安全生产模拟考试一点通总题库中随机出的一套保育员(中级)考试资料,在公众号安全生产模拟考试一点通上点击保育员(中级)作业手机同步练 ...

  7. 2021.05.27 发表自己第一篇技术文章

    从昨晚开始做家庭财经系统.不要以为有系统两个字就怎么复杂,都是大家都会的.建库.建表. 第一个使用软件是mysql 2021.05.26 数据库 lianxi 已建好. 表 members_basic ...

  8. 2021年保育员(中级)考试内容及保育员(中级)考试资料

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:保育员(中级)考试内容是安全生产模拟考试一点通生成的,保育员(中级)证模拟考试题库是根据保育员(中级)最新版教材汇编出保育员(中级 ...

  9. 2021年保育员(中级)最新解析及保育员(中级)模拟考试题库

    题库来源:安全生产模拟考试一点通公众号小程序 保育员(中级)最新解析考前必练!安全生产模拟考试一点通每个月更新保育员(中级)模拟考试题库题目及答案!多做几遍,其实通过保育员(中级)在线考试很简单. 1 ...

最新文章

  1. 年度重磅:《AI聚变:2018年优秀AI应用案例TOP 20》正式发布
  2. GIT常用命令以及使用详解图示
  3. 居然以反战的名义,利用开源工具包“投毒”!
  4. Linux_Command
  5. EasyUI中Combox组合框的简单使用
  6. Redis中的zset 有序集合
  7. 欢迎光临CAX软件二次开发开源社区!
  8. opengl 如何加阴影_一步步学OpenGL(23) -《阴影贴图1》
  9. 二分查找递归解法(java)
  10. html 播放flv js代码,js实现的万能flv网页播放器代码
  11. 获取计算机登录用户名和密码,查看电脑的登录用户名_查看电脑用户名和密码...
  12. lrzsz的交叉编译与使用
  13. 惊呆!200行代码就能实现的隐身术你见过么?
  14. 进入Java世界的第一个程序Hello world
  15. 云服务器/树莓派搭建我的世界Minecraft多人游戏服务器
  16. layui下载图片到本地
  17. ubutnu18+cuda11.1+cudnn8.0.4+nvidia-driver-465
  18. 基于STM32的动态天气时钟毕业设计
  19. CodeForces 13A - Numbers
  20. css实现(上、右、下、左)箭头

热门文章

  1. 自相矛盾的俗语及名言
  2. 三星Note2(N7100)刷机
  3. 图说spark工作原理
  4. python如何检测损坏的图像,并打印出来
  5. L2-2 点赞狂魔 (25 分)
  6. 园林和计算机学哪个,学园林设计用什么电脑
  7. IT设备垂直信息搜索平台(酷搜网)初体验
  8. 网络通信原理:为什么一个IP账号通过路由器可供多人同时使用?
  9. 使用Media Player把*.CDA格式转换成*.MP3
  10. 如何利用双休日,每月稳定增加额外1500元收入?