Python文件读写

来源:互联网 发布:unity3d 骰子模型 编辑:程序博客网 时间:2024/05/29 13:20

一、打开文件

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 osos.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

0 0
原创粉丝点击