- 文件是数据存储的一种形式
- 文件的展现状态:文本文件和二进制文件
文本文件:
- 由单一特定编码组成的文件,如UTF-8编码
- 文本文件由于存在编码,也被看成存储着的长字符串
- 适用于例如:.txt文件、.py文件
二进制文件:
- 直接由比特0和1组成,没有统一字符编码
一般存在二进制0和1的组织结构,即文件格式
适用于例如:.png文件、.avi文件等
1、文件的打开
格式:<变量名> = open(<文件名>,<打开模式>)
- 变量名作为文件句柄
- 文件名:文件路径和名称,源文件同目录可省略路径
- 文件路径,
- 绝对路径:D:\PYE\f.txt应该写为“D:/PYE/f.txt”或者“D:\PYE\f.txt”
- 相对路径:同一盘符下则:./PYE/f.txt“”。相同目录里:“f.txt”
- 打开模式:文本或者二进制,读或写
2、文件的关闭
格式:<变量名>.close()
3、文件的读取
<变量名>.read(size=-1):读入全部内容,如果给出参数,读入前size长度
例如:>>>s = f.read(2)
<变量名>.readline(size=-1):读入一行内容,如果给出参数,读入该行前size长度
例如:>>>s = f.readline()
4、遍历全文本
- 遍历全文本的方法一:一次读入,统一处理
fname = input("请输入文件名称:")
fo = open(fname, "r")
txt = fo.read()
#对全文txt进行处理
fo.close()
- 遍历全文本的方法二:按数量读入,逐步读入
fname = input("请输入文件名称:")
fo = open(fname, "r")
txt = fo.read(2)
while txt != "":
#对全文txt进行处理
txt = fo.read(2)
fo.close()
- 逐行遍历文件的方法一:一次读入,分行处理
fname = input("请输入文件名称:")
fo = open(fname, "r")
for line in fo.readlines():
print(line)
fo. close()
- 逐行遍历文件的方法二:分行读入,逐行处理
fname = input("请输入文件名称:")
fo = open(fname, "r")
for line in fo:
print(line)
fo. close()
5、文件的写入
例子:
fname = input("请输入文件名称:")
fo = open(fname, "w+")
ls = ["中国", "法国", "美国"]
fo.writelines(ls)
for line in fo:
print(line)
fo. close()
上面的例子什么也没有输出,原因是:当文件读入信息之后,操作文件的指针在文件的最后,所以文件输出为空白
应修改为:
fname = input("请输入文件名称:")
fo = open(fname, "w+")
ls = ["中国", "法国", "美国"]
fo.writelines(ls)
fo.seek(0) #把指针位置移到文件开始
for line in fo:
print(line)
fo. close()
这一点很重要