在使用python编程时,经常会遇到读写文件的操作。
读写文件的各种模式(如阅读、写入、追加等),以及open、read、readline、readlines、write等方法的使用。
本文主要是python读写文件
open函数
如果你想用python读取文件(如txt、csv等),第一步要用open函数打开文件。open()是python的内置函数,它会返回一个文件对象,这个文件对象拥有read、readline、write、close等方法。
open函数有两个参数:
open('file','mode')参数解释
file:需要打开的文件路径
mode(可选):打开文件的模式,如只读、追加、写入等
mode常用的模式:
- r+: 表示文件读写
- a+:表示打开文件(读/写/创建/结尾追加)【注意点:a+模式打开文件指针在文件结尾处,所以直接读是读不到内容的】
- w+: 表示可以对文件(读/写/创建/覆盖)【注意点:w+在打开时会覆盖原文件,所以导致每次打开时都会是个空文件】
(按照上边的注意点:我们在只想要读取的时候最好还是使用r+,当有文件写入的时候使用a+或者w+)

简单例子:
#!/usr/bin/env python2.7
# -*- coding=utf-8 -*-
# 使用open函数 第一个参数是文件地址,第二个参数是打开模式,该函数返回一个文件对象(注意这里的文件一定要存在,如果不确认的话,可以使用try捕捉)
try:
f = open('/Users/info/Desktop/paramter.txt','w+')
# 对文件对象进行写入操作
for i in range(1000):
if i % 2 != 0:
f.write('Fasle\n')
else:
f.write('True\n')
except IOError:
print('文件未找到')
finally:
f.close()文件对象的各种方法使用例子:
#!/usr/bin/env python2.7
# -*- coding=utf-8 -*-
"""
file文件中内容:
123
234
345
456
"""
f = open('*******','r+')
# read
print f.read()
# >>> /usr/bin/python2.7 /Users/info/Desktop/happy_work/test/test28.py
# >>> 123
# >>> 234
# >>> 345
# >>> 456
________________________________________________________________________
# readline
print f.read()
# >>> /usr/bin/python2.7 /Users/info/Desktop/happy_work/test/test28.py
# >>> 123
___________________________________________________________________________
# readlines
print f.readlines()
# >>> /usr/bin/python2.7 /Users/info/Desktop/happy_work/test/test28.py
# >>>['123\n', '234\n', '345\n', '456']
# 注意这里返回的是一个list 通常可以配合这for in使用
____________________________________________________________________________
# seek 方法用于移动文件读取指针到指定位置。
f.seek(2)
f.write('b')
# a23 >>> a2b
# 234
# 345
# 456
____________________________________________________________________________
# tell
# 获取指针当前位置
f.seek(2)
f.tell() # return 2
____________________________________________________________________________
# flush
# 文件关闭后自动刷新缓冲区到文件,这个方法的作用是可以在关闭文件之前将内容刷新进去
____________________________________________________________________________
# write
print f.write('a')
# return None 没有返回值,开始进行替换,不会将所有内容进行覆盖
# a23
# 234
# 345
# 456
____________________________________________________________________________
# close
# 使用完成后进行close 防止内存溢出
With关键字
with open('/path/to/file', 'r') as f:
print(f.read())
下图为我们这篇文章的一个总结:

















