#data = open("yesterday",encoding= "utf-8").read() #添加encoding 是为了让utf-8打开 否则就默认win的gbk打开
#f = open("yesterday",encoding='utf-8' ) #文件句柄 r 默认读
#f = open("yesterday2",'w',encoding='utf-8') #写
f = open("yesterday2",'a',encoding='utf-8') # a=append 追加
f = open("yesterday2",'rb') #文件句柄 二进制文件 b'字节类型 (1、网络传输只能用二进制 2、下载的二进制文件需要用二进制打开)
f = open("yesterday2",'wb') #文件句柄 二进制文件
data=f.read()
data2=f.read() #从第一个结尾处开始读
print(data)
print('----------data2------------%s--'%data2)
f.write("when i was young i listen to the radio\n") #以写创建文件
data=f.read()
print('---read',data)
f.close()
#文件读 #文件句柄 r 默认读
f=open("yesterday",encoding="utf-8") #添加encoding 是为了让utf-8打开 否则就默认win的gbk打开
data=f.read()
data2=f.read()
print(data)
print(data2)
f.close()
#打印到第几行
f=open("yesterday2",'r',encoding="utf-8")
for index,line in enumerate(f.readlines() ): #index enumerate 列举
if index ==9:
print('-----------我是分割线------')
continue
print(line.strip() )
#优化
f=open("yesterday2",'r',encoding="utf-8")
count = 0
for line in f :
if count==5:
print('-----------我是分割线------')
count +=1
continue
print(line)
count+=1
#按字符计数
f=open("yesterday2",'r',encoding="utf-8")
print(f.tell()) #打印到某个地方
#print(f.readline()) #计数一行的字符数
#print(f.read(5) ) #读取5字符数
print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell()) #打印光标在哪里
f.seek(10) #回到某个的地方
print(f.readline() )
print(f.encoding) #打印文件编码
print(f.fileno()) #返回文件具体占位成功的编号
print(f.name) #打印文件名字
print(f.flush() ) #刷新(权限) 刷出临时缓存里的文件(刷新实时硬盘)
f.closed #判断文件是否关闭
f.truncate() #要用a ()里未写东西 就清空 (10)在第十个位置截断,前面也留着 移动也不好使
#读前五行
#for i in range(5):
# print(f.readline() )
#写 从写创立文件
f=open("yesterday2",'w',encoding="utf-8") #写
f.write("东方红,太阳升,\n")
f.write("东方出了个。。。")
data=f.write()
print(data)
f.close()
#追加 a=append
f=open("yesterday2",'a',encoding="utf-8")
f.write("\n浪里个浪。。。\n")
f.write("lalllalalalalala....")
data=f.write()
print(data)
f.close()
#文件的既读又写(打开文件追加读写)
#f=open("yesterday2",'r+',encoding="utf-8") #文件句柄 r+ 表示读写
print(f.readline() )
print(f.readline() )
print(f.readline() )
f.write("-----diao-----") #写在最后面
print(f.tell())
print(f.readline())
'''
#文件的写读
f=open("yesterday2",'w+',encoding="utf-8") #文件句柄 w+ 表示写读
print(f.write("--------diao---------\n"))
print(f.write("--------diao---------\n"))
print(f.write("--------diao---------\n"))
print(f.write("--------diao---------\n"))
print(f.tell())
f.seek(10)
print(f.readline() )
f.write("shold be in the begining") #追加写在最后面(Python3)
print(f.close() )
#二进制文件的读写 写读
#f = open("yesterday2",'rb') #文件句柄 二进制文件 b'字节类型 (1、网络传输只能用二进制 2、
f = open("yesterday2",'wb') #文件句柄 二进制文件
f.write("hello brinary!\n".encoding()) #.encoding() 转化成二进制
f.close()
#文件的修改
f=open("yesterday2","r",encoding= "utf-8")
f_new=open("yesterday2.bak","w",encoding= "utf-8")
for line in f: #循环打印旧文件,找到需要替换的句子,修改,然后写新的
if "多甜美的曲儿等我歌唱" in line:
line = line.replace("多甜美的曲儿等我歌唱","多甜美的曲儿等Jack歌唱") #没找到就不动,找到后就修改
f_new.write(line) #修改后写入新文件
f.close()
f_new.close()
#实现简单的shell sed替换功能
import sys f=open("yesterday2","r",encoding= "utf-8") f_new=open("yesterday2.bak","w",encoding= "utf-8") find_str = sys.argv[1] replace_str2 = sys.argv[2] for line in f: #循环打印旧文件,找到需要替换的句子,修改,然后写新的 if find_str in line: line = line.replace(find_str,replace_str2) f_new.write(line) f.close() f_new.close()
#with语句
#f=open("yesterday2","r",encoding= "utf-8") #with open("yesterday2","r",encoding= "utf-8") as f: #帮你自动关闭文件 with open("yesterday2", "r", encoding="utf-8") as f,\ open("yesterday2", "r", encoding="utf-8") as f2 : # 打开两个文件 for line in f: print(line)