Python小册子-文件操作

【文件基本操作】

data = open("yesterday2",encoding="utf-8").read() #直接打开文件读取文件内容
f = open("yesterday",encoding="utf-8")   #f叫文件句柄,文件的内存对象,包含文件名、大小、内存的起始位置等
data = f.read()   #文件读完一遍,指针指到最后
data2 = f.read()
print(data)
print("data2".center(50,'-'))
print(data2)   #此处没有文件的打印输出

f.write("我爱北京天安门")
f2 = open("yesterday2",'w',encoding='utf-8')
data = f2.read()
print(data)

f1 = open("yesterday2",'a',encoding="utf-8")   #“a”是往文件后追加,也不可读
for i in range(10):
    f1.write("Yui hatano\n")

f1.close()#关闭文件


#逐行读文件
f = open("yesterday2",'r',encoding="utf-8")
for i in range(5):
    print("打印前5行:",f.readline())

#readlines把文件逐行存在list中,每行行尾加上\n,readlines只适合读小文件
#print(f.readlines())    #这种方式,文件已经读到最后,所以后面的打印不出来
for index,line in enumerate(f.readlines()):
    if index == 9:
        print("我是分割线!".center(50,'-'))
        continue
    print(index+1,"通过readlines逐行打印:",line.strip())

#high level   效率最高

f = open("yesterday2",'r',encoding="utf-8")
print(f.tell())

count = 0;
for line in f:
    if count == 9:
        print("我是分割线".center(50,'-'))
        count += 1
        continue
    print(line)


f = open("yesterday2",'r',encoding="utf-8")
print(f.tell())
print(f.read(5))
print(f.tell())

print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())
f.seek(0)     #seek里面的参数里面可以是其他字符,例如,seek(6)回到第6个字符
print(f.encoding)  #文件编码
print(f.name)  #获取文件名
print(f.seekable())     #判断文件句柄是否可以移动,是返回true
f.flush()     #强制刷新内存数据到硬盘
import sys,time
for i in range(20):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.3)


#truncate()截断   从头开始截断字符,例如:f.truncate(10),截取从头开始10个字符
print(f.truncate(10))


f = open("yesterday3",'r+',encoding="utf-8")  #文件句柄,读写  最常用
f = open("yesterday3",'w+',encoding="utf-8")  #文件句柄,写读
f = open("yesterday3",'a+',encoding="utf-8")  #文件句柄,追加读写
f = open("yesterday3",'rb')  #文件句柄,读二进制文件,所以不需要编码的方式
f = open("yesterday3",'wb')  #文件句柄,写二进制文件,所以不需要编码的方式
f = open("yesterday3",'ab')  #文件句柄,追加写二进制文件,所以不需要编码的方式
f.write("hui hatano is my favarite superstar\n".encode())
f.close()

#修改文件,先把旧文件打开读,打开新的文件写,判断是否需要修改的行,然后写到新文件
f = open("yesterday3",'r',encoding="utf-8")
f_new = open("yesterday_new",'w',encoding="utf-8")
for line in f:
    if "lyon like hatano" in line:
        line = line.replace("lyon like hatano","Lyon love Yui hatano")
    f_new.write(line)
f.close()
f_new.close()

 

posted @ 2021-09-09 14:00  三人行必有我师娘  阅读(108)  评论(0编辑  收藏  举报