文件操作
一. 定义:文件,就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时又省力。
二. 类型:
文本类型:以文字存储为主,读写均以”字符“为单位。
二进制类型:以图形,声音,影像为存储内容,读写读写均以”字节“为单位。
三. 文件后缀:用来让计算机分辨使用什么格式来打开
文本类型:txt
py
doc(word文档)
docx
pdf(可移植文档格式,用pdf阅读器打开)
csv :
CSV 文件(Comma Separated Values file,即逗号分隔值文件)是一种纯文本文件,它使用特定的结构来排列表格数据。因为是纯文本文件,所以 csv 只包含实际的文本数据 —— 换句话说,csv 可以包含可打印的 ASCII 或 Unicode 字符。
xls:xls其实就是Microsoft Excel工作表,属于一种经常使用的电子表格文件格式
文件格式不同:xls是一个特有的二进制格式,其核心结构是复合文档类型的结构,而xlsx的核心结构是XML类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。
xml:XML全称为Extensible Markup Language,中文名为:可扩展标记语言。对应Mybaits
html :HTML全称为HyperText Markup Language,中文名为:超文本标记语言。网页
.com 系统命令文件
.exe 可执行文件
.bat 可执行的批处理文件
.txt 正文文件
.htm 超文本文件
.obj 目标文件
.sys 系统专用文件
.bak 备份文件
.dat 数据库文件
.bas basic 源程序文件
.pas PASCAL语言源程序文件
.c c语言源程序文件
.tmp 临时文件
.ovl 覆盖文件
.asm 汇编语言源程序文件
.prg FOXBASE源程序文件
.cpp c++源程序文件
.cob cobol语言源程序文件
.img 图像文件
二进制类型:jpg,mp3,wav,mp4,mov,avi...
四. 基操
1.打开文件,并且写东西(write),如图所示,open(打开)文件text.txt,w表示write(如果不存在就创建一个文档,如果文档存在,就抹掉所有内容,并写入新的内容) ,并将该操作赋予变量f,
执行后,在该项目的目录下就生成了这样一个文档,可以双击打开,也可以在文件中打开
注:这里的文件的位置,写的是相对路径
绝对路径:从盘符开始一步步写出直到文件
相对路径:相对当前源码所在的路径
文件打开,写入后记得要关闭,同样的变量,close一下:f = close()。否则在后期的使用当中可能会长期占用,带来空间浪费等等问题。
在刚刚关闭文件之前,可以进行的写入操作:f.write() ——>写入内容
2.指定编码格式,encoding
f = open ('test.txt', 'w', encoding = 'UTF-8')
# 前情摘要:
3.一次性写入多行:writelines
远古方式:f = open ('你好\n吴彦祖\我是哈哈\n')
使用writelines:
延申方式:context = ['你好吴彦祖我是哈哈']
f.write('\n'.join(context))
4.文件内容的读取,
方式一:read
# 不指定读取的字符集的时候,默认读取文件中的所有数据
# 只从文件的头部读取两个字符
# 此时在一个f下面连续执行,光标会连续移动,所以每次读到的内容都是不重复,且延续。
方式二:readline——读取一行,返回一个字符串
# 这样只能读取一行
# 由上面的知识可知,读取文件的时候,光标是连续移动不回头的,所以每次读取都是接下来的内容。那么可以利用循环语句,逐步读取文件中的所有行。
方式三:readlines——读取多行
# 会把文件以一个列表的方式全都打印出来,包括其中的转义字符
# 但是如果想要把文件中的内容原样打印出来,还需要一些操作:
方式四:tell
tell会答复读取文件的游标所在的位置:
注意:UTF-8中,中文占据三个字节,GBK中占据两个字节;英文都只占据一个字节。
方式五:seek,定位文件读取的指针所在位置(字节)
seek(offset [,whence] )
offset——>开始的偏移量,也就是代表需要移动偏移的字节数
whence——>可选(0,1,2),默认值为0,代表从文件开头开始算起;1代表从当前位
置开始算起,2代表从文件末尾开始算起
注意:seek定位是计数字节!!!
举例如下: