python中文件的读写和操作
文件读取和操作
对文件的操作一般分为三种情况:打开文件,读取文件(读取)和关闭文件。再python中对文件的默认操作方法时open(),默认open()是打开文件并且是只读模式。具体的操作如下:
- r:只读模式
- w:只写模式 【不可读,不存在就新创建,已存在就清空内容替换】
- x:只写模式 【不可读,不存在就新创建,已存在就报错】
- a:增加模式 【可读,不存在就新创建,已存在就增加内容】
“+”表示可以同时读写某个文件:具体:
- r+:读写
- w+:写读
- x+:写读
- a+:写读
具体案例如下:
针对-----w:只写模式 【不可读,不存在就新创建,已存在就清空内容替换】
1、先查找文件是否存在
2、如果文件不存在,那么就先创建文件
f=open('log.txt','w') # 1、先查找log.txt文件是否存在,
f.write('hello sun') #2、如果不存在,就会新建一个log.txt文件,并将hello sun写进文件中
f.close()
输出结果:
3、如果文件存在,如果是w模式,那么就会将文件中原有的内容替换掉(将之前的内容删掉,再写新的内容进去);当然替换的过程我们是看不见的,只能看见结果。
这是我们再来用代码实现一下(一样的代码再运行一下,只要改写一下f.write(world)即可):
f=open('log.txt','w') #先查找log.txt文件是否存在,
f.write('world') #如果存在,就会直接将log.txt文件里面的hello sun替换成world
f.close()
输出结果:
针对---a:增加模式 【可读,不存在就新创建,已存在就增加内容】
f=open('log.txt','a',encoding='utf-8') #加入中文时,注意乱码就加一个encoding='utf-8' f.write(' 今天也要元气满满') #空格加到第一行的后面 f.write('\n今天也要元气满满') #加到下一行 f.close()
输出结果:
针对---r:只读模式(有以下三种方式)
(1)读取文件所有的内容:
f=open('log.txt','r',encoding='utf-8') #乱码就加一个encoding='utf-8' print('读取文件所有的内容:',f.read())
输出结果:
(2)只读取第一行的内容:
f=open('log.txt','r',encoding='utf-8') #乱码就加一个encoding='utf-8' print('读取文件第一行的内容:',f.readline())
输出的结果:
(3)读取所有的内容:
f=open('log.txt','r',encoding='utf-8') #乱码就加一个encoding='utf-8' for item in f.readlines(): print(item.strip()) #strip()去掉空格 f.close()
输出结果:
PS:with上下文,内部会进行文件的关闭处理,不需要担心忘记close。
with open('log.txt','r',encoding='utf-8') as f: print(f.read())
输出结果: