简单读取
f = open(" ",'r',encoding='utf-8')
data1 = f.read()
data2 = f.read()
print("####data1####\n",data1)
print("----data2----",data2)
只有data1数据,因为光标读取到最后。不能同时写f.write(),‘w’是写,很危险,如果open已存在的文件,就覆盖了新的,原来内容全无。’a’是追加内容,但还是不能读。
文件行读取
*前几行读取*
f = open(" ", 'r', encoding='utf-8')
for i in range(2):
print(f.readline())
f.close()
*指定行读取*
f = open("D:/2345Downloads/yesterday2", 'r', encoding='utf-8')
for i in range(5):
f.readline()
if i == 4:
print(f.readline())
f.close()
*指定行修改*
f = open("yesterday2", 'r', encoding='utf-8')
for index, line in enumerate(f.readlines()):
if index == 5:
print("。。。。。。。。。。。。")
else:
print(line.strip())
f.close()
注意:f.readlines只能读小文件,大文件不行,因为它是一次性读到内存里
改进的文件读取
*一行读取释放*
f = open("yesterday2", 'r', encoding='utf-8')
count = 0
for line in f:
count += 1
if count == 5:
print("-----line-----".center(50,"*"))
else:
print(line.strip())
f.close()
或者
f = open("D:/yesterday2", 'r', encoding='utf-8')
count = 0
for line in f:
count += 1
if count == 5:
print("-----line-----".center(50,"*"))
continue#跳出这一次循环,后面不执行;break跳出全部循环
print(line.strip())
f.close()
因为文件变成一种迭代器的形式