python-day3 文件操作
----python3文件操作
#读取, 就不能写, 写就报错
F=open('a.txt',mode='r',encoding='utf-8')
data=F.read()
print (data)
F.close()
mode=r+ -->读 和写 ,没有 这个文件 报错
data1=F.readline()
print (data1) -->打印第一行
data2=F.readlines()
print (data2) -->将内容打印成列表,已换行分割
print (F.readable()) -->是否可读
#写入,清空原来,写入新的 ;就不能读
#没有这个文件 就会 创建
F=open('a.txt',mode='w',encoding='utf-8')
F.write('1111')
F.close()
mode=w+ -->写和读
print (F.writeable) -->是否可写
#追加,不清空,在最后追加
F=open('a.txt',mode='a',encoding='utf-8')
F.write('1111')
F.close()
mode=a+ -->追加和读
###mode = xb 是以二进制的方式 处理,读 或者写
F.seek(0) -->移动指针,移到开头
####################以上是一般用法,使用后 必须 close()
-------下面有一种高级用法,不仅不需要 close(), 还可以 同时打开俩个文件,一起操作
with open('a.txt',mode='r',encoding='utf08') as f:
print (f.read()) 结果和普通的读取是一样的
还可以这样: 需求:将一个文件里面的内容CP 到另外一个文件
with opene('a.txt',mode='r',encoding='utf-8') as f and open('b.txt',mode='w+',encoding='utf-8') as w:
data=f.read()
w.write(data)
print (w.read())
#按照以上方法还可以 拷贝图片,(爬虫下载的方法); mode 'b'
###########小练习:修改文件;
和LINUX VIM 修改文件一样, 进去之后 会生成 缓存文件,当修改后 保存--> 底层是 将缓存文件覆盖了原文件
文件 a.txt 中 有 555\n222\n333\n 需要将555变成111
import os
with open('1.txt',mode='r',encoding='utf-8') as r , open('2.txt',mode='w+',encoding='utf-8') as w:
for i in r.readlines():
print (i)
if i.startswith('55'):
i='11111\n'
w.write(i)
os.remove('1.txt')
os.rename('2.txt','1.txt')