文件的操作

一 只读操作(r,rb)

f =open("小娃娃.txt",mode ="r+", encoding="utf-8")
content =f.read()
f.write('哈哈哈')
print(content)
f.flush()
f.close()

 

f =open("哈哈哈.txt",mode="r",encoding="utf-8")
content =f.read()
print(content)
f.close()

 需要注意encoding表示编码集,根据文件的实际保存编码进行获取数据

 rb 读取出来的数据是bytes类型,在rb模式下,不能选择encoding字符集

f =open("哈哈哈.txt",mode="rb")
content=f.read()
print(content)
f.close()

 rb 的作用:在读取非文本文件的时候,比如视频,图像就需要rb模式,因为这种数据是无法显示出来的

 

1 绝对路径:从磁盘的根目录开始一直到文件名

2 相对路径:同一个文件夹下的文件,相对于当前这个程序所在的文件夹而言,如果在同一个文件夹中,则相对路径就是这个文件名,如果在上一层文件夹,则要.../

 

读取文件的方法:

1 read()将文件中的内容全部读取出来,弊端:占内存

f =open("..哈哈哈.txt",mode="r",encoding(utf-8)
content=f.read()
print(content)

2 read(n)读取n个字符,需要注意的是,如果再次读取,那么会在当前位置继续去读而不是从头读,如果使用的是rb模式,那么读出来的是n个字节

f =open("哈哈哈.txt",mode="r",encoding="utf-8)
content =f.read(3)
print(content)

 3 readline()一次读取一行数据,注意:readline()结尾,注意每次读取出来的数据都会有一个\n所以,需要我们使用strip()方法来去掉\n或空格

f =open("..哈哈哈.txt",mode="r",encoding="utf-8"
content=f.readline()
content2 =f.readline()
content3=f.readline()
content4=f.readline()
print(content)
print(content2)
print(content3)
print(content4)

 

4 readlines()将每行形成一个元素,放到一个列表中.将所有的内容都读取出来

f=open("哈哈哈.txt",mode="r",encoding="utf-8")
lst=f.readlines()
print(lst)
for line in lst:
print(line.strip())

 5 循环读取 这种方式是组好的,每次读取一行内容

f=open("哈哈哈.txt",mode="r",encoding="utf-8")
for line in f:
print(line.strip())

 三 写模式(w,wb)

写的时候注意 如果没有文件 则会创建文件 如果文件存在,则会将原来的内容删除 在写入新内容

f =open("小娃娃.txt",mode="w",encoding="utf-8")
f.write("金毛狮王")
f.flush()   #刷新
f.close()

 wb 模式下 可以不指定打开文件的编码 但是在写文件的时候必须将字符串转换成utf-8

f=open("小娃娃.txt",mode ="wb")
f.write("金毛丝王",encoding("utf-8")
f.flush()
f.close()

 四 追加(a,ab)

在追加的模式下,我们写入的内容会追加到文件的末尾

f =open("小娃娃.txt",mode ="a",encoding="utf-8:)
f.write("哈哈哈")
f.flush()
f.close()

 五 读写模式(r,r+b)

对于读写文件 必须是先读 因为光标默认的是在开头,准备读取的,当读完之后在进行写入,使用最高的是R+模式

 

六 写读(w+,wb+)

 先将所有内容清空,然后在写入,最后读取,但是读取的内容是空的,不常用

 

七 追加读(a+)

a+模式下 不论是先读还是后读,都是都不到数据的

 

1seek(n)光标移动到n位置 注意 移动的单位是byte,所以如果是utf-8的中文部分要是3的倍数

 

posted @ 2018-08-07 21:59  茉莉花M  阅读(173)  评论(0编辑  收藏  举报