python文件操作
流程
1.打开文件 open()
2.操作文件 read write
3.关闭文件 close()
在window系统上 默认的编码是gbk
用open()打开时,window系统会使用默认的gbk编码,所以如果打开的文件是别的编码保存,则需要手动指定编码,例如打开utf-8保存的文件时
f = open("test",encoding="utf-8")
而在linux系统上 默认的编码是utf-8
操作方法
f.read() #读整个文件的内容
f.read(5) #读文件前5个字符的内容
如果再来一次 f.read(5),则读接下来的5个字符,read的内容取决于光标的位置
r.readline() #读一行
for i in f
print(i.strip()) #一行一行打印,并移除空白
写入模式
f = open("d://test1.txt", mode="w", encoding="utf-8")
#当文件不存在时,会自动创建
#这个模式只能写,不能读
wzc.write("hello\nworld") #只能覆盖的写
wzc.writelines(['111111\n','222222\n']) #可以多行一起写
追加模式
f = open("d://test1.txt", mode="a", encoding="utf-8")
#也是只能写,但是是追加的写
光标移动
seek()的三种模式:
(1)f.seek(p,0) 移动当文件第p个字节处,绝对位置
(2)f.seek(p,1) 移动到相对于当前位置之后的p个字节
(3)f.seek(p,2) 移动到相对文章尾之后的p个字节
seek是按字节移动
可读可写,有三种
f = open("d://test1.txt", mode="r+", encoding="utf-8")
#这个方法可读内容,写则是追加的写
f = open("d://test1.txt", mode="w+", encoding="utf-8")
#写的时候会把原来的内容覆盖,想读取内容,需要seek调整光标位置
f = open("d://test1.txt", mode="a+", encoding="utf-8")
#这个方法初始光标在最后,要读,则需要将光标调到初始位置,seek(0),要写不管光标位置在哪,都是追加的写入
with open("d://test1.txt", encoding="utf-8") as f
#这个方法可以避免忘记写close()
一种新的方法
import sys
sys.stdout.write(s)
sys.stdout.flush()