1.文件的使用
a.文件的类型
- 文件是数据的抽象和集合
- 文件是存储在辅助存储器上的数据序列
- 文件是数据存储的一种形式
- 文件展现形态:文本文件和二进制文件
- 文本文件:由单一特定编码组成的文件,如:UTF-8编码
- 二进制文件:直接由比特0和1组成,没有统一的字符编码
- 文件的组成部分:
标题Header:有关文件内容的元数据(文件名、大小、类型等)
数据Data:文件中的具体内容
文件结束EOF:表示文件结尾的特殊字符
b.文件的打开和关闭
- 文件处理的步骤:打开-操作-关闭
读文件函数
a.read(size)
a.readline(size)
a.readlines(hint)
写文件函数
a.wirte(s)
a.writelines(lines)
a.seek(offset)
文件的打开
<变量名> = open(<文件名>,<打开模式>)
文件名:文件路径和名称
绝对路径
windows系统中文件的路径方式:D:\PYE\f.txt
在Linux系统中文件的路径方式:D:/PYE/f.txt
由于在python中\是转义符,因而文件路径采用两种方式
单斜杠:D:/PYE/f.txt
双反斜杠:D:\\PYE\\f.txt
相对路径:如果当前程序存储在D盘根目录下,那么调用文件路径
./PYE/f.txt
如果当前程序在PYE目录中,那么调用文件路径
f.txt
如果不使用完整路径,可以使用特殊字符双点(..)来向前移动一个目录
../f.txt
打开模式:文本模式/二进制模式
f=open("f.txt") #文本形式、只读模式、默认值
f=open("f.txt","rt")#文本形式、只读模式、同默认值
f=open("f.txt","w") #文本形式、覆盖写模式
f=open("f.txt","a+")#文本形式、追加写模式+读文件
f=open("f.txt","x") #文本形式、创建写模式
f=open("f.txt","b") #二进制形式、只读模式
f=open("f.txt","wb")#二进制形式、覆盖写模式
文件的关闭
<变量名>.close()
在程序中如果文件打开了,没有写关闭语句,只要程序正常退出,文件会被自动关闭
c.文件内容的读取
<f>.readline(size=-1) | 读入一行内容,如果给出参数,读入该行前size长度 >>>s=f.readline() ------>中国是一个伟大的国家! |
<f>.readall() | 读入整个文件内容,返回一个字符串或字节流 |
文件的全文本操作:
遍历全文本:
fname=input()
fo=open(fname,"r")
txt=fo.read()//保存为字符串txt
#对全文txt进行处理
fo.close()
#一次读入,全部处理
#如果文件体量过大,会耗费时间和资源
fname=input()
fo=open(fname,"r")
txt=fo.read(2)
while 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()
#分行读入,逐行处理
d.数据的文件写入
fo=open("output.txt","w+")
ls=["中国","法国","美国"]
fo.writelines(ls)
fo.seek(0)
#输入完之后,将指针放回文件开头,而后打印输出才有内容
for line in fo:
print(line)
fo.close()
有时文件读写时可能会产生错误,导致f.close()语句不会被执行,文件无法正常关闭,所以为了保证无论是否出错都能正确关闭文件,Python引入了with语句来自动调用close()方法
#读文件
with open('../f.txt','r') as f:
s=f.read()
print(S)