Python之文件读取操作---第十二天

1、对文件的操作:
只读、只写、只追加、其他混合

2、读取文件操作:
(1)先将要读取的文件放在同一目录下
(2)打开文件操作
(3)读取文件操作
(4)打印文件内容操作
(5)关闭操作
注意:
(1)open的默认编码形式是gbk的,如果有中文需要写成“utf-8”
(2)文件没有修改操作,只有覆盖

f=open("111",encoding="utf-8")
data=f.read()
print(data)
f.close()

3、一行一行读取文件内容

f=open("111","r",encoding="utf-8")
print("第1行",f.readline(),end="")
print("第2行",f.readline())

#输出结果:
第1行 啦啦啦
第211111

4、所用内容变成一行读取

f=open("111","r",encoding="utf-8")
print(f.readlines())
f.close()

#输出结果:
['啦啦啦\n', '11111\n', '22222\n', '33333']

5、文件的写模式

  • 如果文件存在,则会将文件清空掉
  • 如果文件不存在,会直接创建一个新的文件
  • 写入文件里的必须是字符串格式的,否则报错
  • 写文件内容,默认为一行显示,需要手动换行,还可以直接上传列表形式
f=open("111","w",encoding="utf-8")
f.write("11111\n")
f.write("22222\n")
f.writelines(["555\n","666\n"])
f.close()

#查看111文件内容:
11111
22222
555
666

6、文件的追加模式(在文件尾部追加一行)

f=open("111","a",encoding="utf-8")
f.write("new_add")
f.close()

7、想修改文件,可以这样解决
(1)先读取文件
(2)写文件,取只保留的部分
(3)文件名不变,相当于重写覆盖

f1=open("111","r",encoding="utf-8")
content=f1.readlines()
f1.close()

f2=open("111","w",encoding="utf-8")
f2.write(content[3])
f2.close()

#结果:
只取111文件中的第四行内容

8、经常忘记用file.close()操作怎么办?
使用with open() as f 操作

with open("111.text","w") as f:
    f.write()

注意:和上面一样,没有该文件会新建一个,有的话直接覆盖修改

9、b模式不能使用编码方式

10、字符串转换成二进制:
bytes(x,encoding=utf-8),也可以直接用x.encode(“utf-8”)

11、readlines()默认为一行显示,后面只有/n,其实在windows平台应该有/r/n,只是python默认将/r去掉了,如果在open里面加上newline=" ",则会打印出/r/n

12、flush()刷新文件

13、tell()查看光标位置

14、seek(a)移动到第a个字节的光标位置

  • seek()的相对位置seek(a,1),不填写默认为0,1的情况下文件模式必须带有b模式,否则报错
  • seek(-a,2)从文件末尾开始倒着移动光标位置,所以a为负数,但是读取还是正着读的
    注意:read读取光标的单位是字符,其他的读取的都是字节

15、truncate(a)截取文件a个字符,需要在有写模式下才可以执行

16、W+是清空原文件内容了,一般不用

你可能感兴趣的:(Python学习)