#文件的几种打开模式:r,w,a追加,
# r+:读+追加模式(python3),读+任意位置写模式(python2)
# w+:读写模式
# a+:追加读写
# rb:二进制方式打开,以byte方式显示,要与encoding='utf-8'一起使用。使用场景:跨平台(winlinux)
# wb:二进制方式读写
# ab:二进制方式追加
#读取文件内容,默认只读打开。具有自动关闭文件功能
filename = 'file01.txt'
with open(filename) as fobj:
content = fobj.read()
print(content)
#可同时打开多个文件,为了一行不超过80字符,用反斜线分行
with open ("filename1",'w') as fobj,
open ("filename2",'w') as fobj02:
pass
#文件如不存在,则建立,已存在则覆盖原内容
filename = 'file02.txt'
with open(filename,'w') as fobj:
fobj.write("Hello,world!")
#追加内容到文件,如文件不存在则建立
filename = 'file02.txt'
with open(filename,'a') as fobj:
fobj.write("Hello,world!")
f01 = open('file01.txt',encoding='utf8') #文件打开后赋一个变量(如f01),才能后续操作文件
print(f01.read())
f02=open('file01.txt',encoding='utf-8').read()
print(f02)
f = open('file02.txt')
print(f.readline()) #指针移到文件第一行,并输出
print(f.readline()) #指针移到文件第二行,并输出
print(f.readline()) #指针移到文件第三行,并输出
print(f.readline()) #指针移到文件第四行,并输出
print(f.readline()) #指针移到文件第五行,并输出
#如果要读出前五行:
for i in range(5):
print(f.readline())
print(f.tell()) #打印指针当前的位置
f.seek(0) #移动指针到0位置
#一次性读取文件全部内容:(适合小文件)
f = open('file02.txt')
for line in f.readlines():
print(line)
#一行一行的读,适合大文件:
f = open('file02.txt')
for line in f:
print(line)
#打印文件名称
print(f.name)
f.flush() #用来刷新缓冲区,即将缓冲区中的数据立刻写入文件,同时清空缓冲区。无返回值
f.close() #关闭文件
#对文件内容作替换
f_old = open('file.txt',encoding='utf8') #与with open功能差不多
f_new = open('file-new.txt','w',encoding='utf8')
for line in f_old:
if "服务器" in line:
line = line.replace("服务器","SERVER")
f_new.write(line)
f_old.close()
f_new.close()
print(__file__) #返回当前文件的绝对路径