#------------------------文件读取操作1-----------------------------------
#data = open("yesterday",encoding="utf-8").read()
#print(data)
f = open("yesterday",'r',encoding="utf-8")#文件句柄,r文件读取模式,不能写
data = f.read()
data2 = f.read()
print(data)
print('-----data2-------')
print(data2)
f.close()
#不用写close的打开方式:
with open("yesterday2.bak","w",encoding="utf-8") as f:
print(f.readline())
------输出结果----
When I was yong, 当我年轻时,
I’d listen to the radio, 常听收音机,
Waiting for my favorite songs。 等待心爱的歌曲。
When they played I’d sing along, 听到播放时便随声歌唱。
It made me smile。 这使我欢畅。
Those were such happy times, 那时多么幸福的时刻!
That they’restarting to sing so fine。他们又开始唱得如此动听。
-----data2-------
Process finished with exit code 0
#------------------文件写入操作
f = open("yesterday2",'w',encoding="utf-8")#文件句柄 'w'写模式,不能读,创建一个新文件,如果存在这个文件将覆盖文件内容,操作需谨慎
f.write("这是文件的写操作\n")
f.write("这是文件的写操作\n")
f.close()
#文件追加
f = open("yesterday",'a',encoding="utf-8")#’a‘为在文件末尾追加内容,不会覆盖源文件内容,此模式可写不可读
f.write("append追加操作")
#---------------------------------------------文件读取操作2--------------------------------------
f = open("yesterday2",'r',encoding='utf-8')
#读取1行
print(f.readline())#读一行
#读5行
for i in range(5):
print(f.readline())#readline只适合读取小文件
#循环读取,第10行不打印
for index,line in enumerate(f.readlines()):
if index ==9:
print('---------------')
print(line.strip())
f = open("yesterday2",'r',encoding='utf-8')
#循环读取,第10行不打印 使用迭代器写法
count =0
for line in f:
if count == 4:
print("------------------")
count += 1
continue
print(line.strip())
count += 1
-----文件操作补充:
f = open("yesterday2",'r',encoding='utf-8')
print(f.tell())#看文件光标在哪
print(f.read(5))
print(f.tell())
f.seek(0)#光标设置到0
print(f.readline())
print(f.encoding)#字符集
print(f.errors)#异常处理使用
print(f.fileno())#返回内存编号
print(f.seekable())
print(f.readable())#判断文件是否可读
print(f.flush())#时时将内容刷到文件里面
print(dir(f.buffer))
print(f.truncate(10))#截断
#打印进度条
import sys,time
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
-----------文件读写模式-------------
f = open("yesterday2",'r+',encoding='utf-8')#r+ 文件既能读又能追加写的模式
print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())
f.write("-------------------------")
print(f.readline())
-------------文件写读模式-----------------
f = open("yesterday2",'w+',encoding='utf-8')#w+ 写读模式,会覆盖原有的文件内容
f.write("-------------1------\n")
f.write("-------------2------\n")
f.write("-------------3------\n")
f.write("-------------4------\n")
f.write("-------------5------\n")
print(f.tell())
print(f.readline())
f.write("---1---3-----4------5--\n")
一般写读模式没什么用,读写模式用的多
---------------------文件的修改---------------------
# 文件的修改
#1.把文件加载到内存中修改(这种方法是把所有内容读到内存,文件大不适用)
#2.打开文件修改完以后写入到另外一个文件中
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("前世你怎舍下","修改修改")
f_new.write(line)
else:
f_new.write(line)
f.close()
f_new.close()
#输入参数修改
import sys
f = open("yesterday2","r",encoding="utf-8")
f_new = open("yesterday2.bak","w",encoding="utf-8")
find_str = sys.argv[1]
relpace_str = sys.argv[2]
for line in f:
if relpace_str in line:
line = line.replace(relpace_str,relpace_str)
f_new.write(line)
else:
f_new.write(line)
f.close()
f_new.close()