VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • Python文件读写详解及设置文件的字符编码

文件读写操作在各种编程语言中都是比较重要的部分,也是很常用的部分,今天就来详细说一下python对文件的读写操作,以及需要注意的点。

一. python打开文件

代码如下:

1
= open("d:\test.txt""w")

说明:

第一个参数是文件名称,包括路径;

第二个参数是打开的模式mode

 

‘r’:只读(缺省。如果文件不存在,则抛出错误)

‘w’:只写(如果文件不存在,则自动创建文件)

‘a’:附加到文件末尾

‘r+’:读写

如果需要以二进制方式打开文件,需要在mode后面加上字符”b”,比如”rb””wb”等

 

二、python读取文件内容f.read([size])

参数size表示读取的数量,可以省略。如果省略size参数,则表示读取文件所有内容。

f.readline()读取文件一行的内容 f.readlines()读取所有的行到数组里面[line1,line2,…lineN]。

1
2
3
= open('./pythontab.txt''r')
content = f.read()
print content

在避免将所有文件内容加载到内存中,这种方法常常使用,便于提高效率。

 

三、python写入文件f.write(string)

将一个字符串写入文件

1
2
3
= open('./pythontab.txt''r+')
f.write('Hello, Pythontab.com')
f.close()

注意: 如果写入结束,可以在字符串后面加上”\n”来表示换行,最后必须用f.close()关闭文件。否则可能会出现异常,特别是在高并发的情况下。

 

四、文件中的内容定位

f.read()读取之后,文件指针到达文件的末尾,如果再来一次f.read()将会发现读取的是空内容,如果想再次读取全部内容,必须将定位指针移动到文件开始:

f.seek(0)

这个函数的格式如下(单位是bytes):f.seek(offset, from_what) from_what表示开始读取的位置,offset表示从from_what再移动一定量的距离,比如f.seek(10, 3)表示定位到第三个字符并再后移10个字符。

from_what值为0时表示文件的开始,它也可以省略,缺省是0即文件开头。下面给出一个完整的例子:

1
2
3
4
5
6
= open('./pythontab.txt''r+')
f.write('Hello, Pythontab.com')
f.seek(5)     # 定位到第6个byte
f.read(1)        
f.seek (-32#定位到第2个字符并再向前移动3个字符
f.read(1)

 

五、关闭文件

关闭文件释放资源文件操作完毕,一定要记得关闭文件f.close(),可以释放资源供其他程序使只是ASCII或者gbk编码格式的的文件读写,比较简单,读写如下:

1
2
3
4
5
6
7
8
9
10
# coding=gbk
= open('./pythontab.txt','r'# r 指示文件打开模式,即只读
s1 = f.read()
s2 = f.readline()
s3 = f.readlines() #读出所有内容
f.close()
= open('./pythontab.txt','w'# w 写文件
11 f.write(s1)
12 f.writelines(s2) # 没有writeline
13 f.close()

相关教程