①②python文件操作及文件增删改查

Python中的文件打开模式

文件打开模式描述
r 以只读模式打开文件,并将文件指针指向文件头;如果文件不存在会报错
w 以只写模式打开文件,并将文件指针指向文件头;如果文件存在则将其内容清空,如果文件不存在则创建
a 以只追加可写模式打开文件,并将文件指针指向文件尾部;如果文件不存在则创建
r+ 在r的基础上增加了可写功能
w+ 在w的基础上增加了可读功能
a+ 在a的基础上增加了可读功能
b 读写二进制文件(默认是t,表示文本),需要与上面几种模式搭配使用,如ab,wb, ab, ab+(POSIX系统,包括Linux都会忽略该字符)

 

 pycharm新建文本文件zhuxian,内容为一首歌的歌词

f = open("zhuxian2",'w',encoding= "utf-8")  #文件句柄
#注意:w是创建模式write,会覆盖原文件;r是只读模式;读不能执行写,写不能执行读
#data = f.read()
#data2 =f.read()
f.write("其实我很烦恼,\n")
f.write("只是你不知道")

f = open("zhuxian2",'a',encoding= "utf-8")
#a = append 追加,不能执行读
f.write("\n如果我也不开心")
data = f.read()
print('-----data',data)

f = open("zhuxian",'r',encoding= "utf-8")

for i in range(5):
    #print(f.readline())    #读5行

print(f.readlines())       #m每一行一个元素组成一个列表

for line in f.readlines():
    print(line.strip())             #列表循环

f = open("zhuxian",'r',encoding= "utf-8")
#low loop低效循环,不推荐使用该方法
for index,line in enumerate (f.readlines()):

    if index == 9:
        print('--------分割线-------')
        continue
    print(line.strip())

#高效循环,推荐使用该方法
f = open("zhuxian",'r',encoding= "utf-8") count = 0 for line in f: if count == 9: print('--------分割线-------') count += 1 continue print(line) count += 1

f = open("zhuxian",'r',encoding= "utf-8")
print(f.tell())     #读取文件中光标位置
#返回结果:0 #刚开始光标在文首的位置
print(f.readline())
print(f.tell())
#返回结果为24,读取一行后,光标在读取后的位置,也即读取的字符个数之后
f.seek(0)           #光标回到文首
print(f.readline())
print(f.encoding)   #打印文件编码
print(f.flush() )   #把写文件缓存刷新到硬盘
print(f.fileno())
print(f.name)       #打印文件名字
print(f.isatty())   #是否为终端设备
print(f.seekable() )#判断文件类型是否可移动光标
print(f.readable() )#判断文件类型是否可读
print(f.writable()) #判断文件类型是否可写
print(f.buffer)
print(f.closed)     #判断文件是否关闭了

#缓冲flush的作用,进度条实例如下
import sys,time

for i in range(20):
    sys.stdout.write('#') #stdout标准输出
    sys.stdout.flush()
    time.sleep(0.1)

f = open("zhuxian",'a',encoding= "utf-8")
#f.seek(24)
f.truncate(100)   #truncate 从文首开始截短,多少个字符后截短

f = open("zhuxian",'r+',encoding= "utf-8")
#r+,读写模式,前面有读取readlines时写追加在文件末尾,
#直接写入则从开头开始覆盖
print(f.readline())
f.write("----------diao---------\n")
f.write("----------diao---------\n")
f.write("----------diao---------\n")
f.write("----------diao---------\n")
print(f.tell())
f.seek(10)
print(f.tell())
print(f.readline())
f.write("should be at the begining of the second line")
f.close()

f = open("zhuxian",'w+',encoding= "utf-8")
#w+,写读模式,先创建一个文件,然后写入
f.write("----------diao---------\n")
f.write("----------diao---------\n")
f.write("----------diao---------\n")
f.write("----------diao---------\n")
print(f.tell())
f.seek(10)
print(f.tell())
print(f.readline())
f.write("should be at the begining of the second line")
f.close()
f = open("zhuxian",'rb')
#rb,二进制文件只读;3.0里网络传输只能用二进制格式;视频文件
print(f.readline())
print(f.readline())
print(f.readline())'''

f = open("zhuxian",'wb')
f.write("hello world\n".encode())
#修改文件写入新文件,原文件不变
f = open("zhuxian",'r',encoding= "utf-8")

f_new = open("zhuxian.bak",'w',encoding= "utf-8")

for line in f:
    if "这世界多么美好" in line:
        line = line.replace("这世界多么美好","这世界多么+++++++美好")
    f_new.write(line)
f.close()
f_new.close()
with open("zhuxian",'r',encoding= "utf-8") as f:
    print(f.readline())


#with语法,程序执行完后,会自动close

 


posted @ 2017-03-29 20:00  penghx  阅读(592)  评论(0编辑  收藏  举报