一、打开文件
f = open("D:\\test.txt", "r")
说明:
第一个参数是文件名称,包括路径;第二个参数是打开的模式mode
'r':只读
'w':只写。如果文件不存在,则自动创建文件;如文件已存在,则覆盖该文件
'a':附加到文件末尾
'r+':读写
如果需要以二进制方式打开文件,需要在mode后面加上字符"b",比如"rb""wb"等
二、读取内容
目前常使用以下三种方式读取内容:read(), readlines(), readline()
f.read() #读取文件所有内容
f.read(size) #设定读取的数量
f.readline() #读取文件一行的内容。再次输入时,读取下一行
f.readlines() #读取所有的行到数组里面[line1,line2,...,lineN]。该方法避免将所有文件内容加载到内存中,便于提高效率
三、写入文件
在打开模式为r+、w、a的情况下,可往文件中写入字符串。
f.write("string")
s1="abc";s2="123";s3="ABC"
f.writelines([s1,s2,s3]) #写入多个字符串时,使用writelines。writelines不会换行,即所有字符串被合并在一行内。
四、文件中的内容定位
f.read()读取之后,文件指针到达文件的末尾,如果再次运行f.read()将会发现读取的是空内容。如果想重新读取全部内容,必须将定位指针移动到文件开始:
f.seek(0)
如想回到特定位置,代码如下:
f.seek(offset,from_what)
特定位置 = 从参考点向前移动offset个字符数。参考点由from_what决定,from_what = 0代表从文件开头计算,from_what = 1代表从当前指针所在位置计算,from_what = 2代表从文件末尾计算。from_what可以省略设置,默认为0,即从头计算。如offset为负值,即向后移动offset个字符数。
查看当前指针所在位置,可使用:
f.tell()
举些例子解释下。假设一个文档有50个字符数。
f = open("test.txt","r")
f.read()
f.tell() #49L,指针在文档末端(Python从0计数,所以为49)
f.seek(0); f.tell() #0L,指针在文档开头
f.seek(5,0); f.tell() #5L,指针从头开始向前移动了5个字符数。如此时使用f.read(),将从第6个字符数读取文档。
f.seek(10,1); f.tell() #15L,指针从刚刚所在的位置5向前移动10个字符数
f.seek(10,2); f.tell() #59L,指针从文档末尾49L向前移动10个字符数
f.seek(-10,2); f.tell() #39L,指针从文档末尾49L向后移动10个字符数
五、关闭文件
文件操作完毕后关闭文件,可以释放资源供其他程序使用。尤其是在写入文件时,完成后要及时关闭文件,防止意外写入更多内容。
f.close()
其它:
更改当前读取文件路径
import os
os.getcwd() #查询当前路径
os.chdir("D:\\Documents\\...")
参考文章
1、python中读写文件及中文编码处理方法
http://blog.163.com/longsu2010@yeah/blog/static/17361234820113521439979/
2、Python >> 2.7.12 >> Documentation >> The Python Tutorial >> 7. Input and Output
https://docs.python.org/2/tutorial/inputoutput.html