open函数

Python内置的open()函数打开一个文件,创建一个file对象,相关的辅助方法才可以调用它进行读写。语法为:

file object = open(file_name [, access_mode][, buffering])

各个参数的细节如下:

1、file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。

2、access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

3、buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

不同模式打开文件的完全列表:

模式描述

r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+打开一个文件用于读写。文件指针将会放在文件的开头。

rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

close函数

File对象的close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。当一个文件对象的引用被重新指定给另一个文件时,Python会关闭之前的文件。语法为:

fileObject.close()
#打开一个文件
fo = open("foo.txt", "wb")print "Name of the file:", fo.name#关闭打开的文件
fo.close()

File对象的属性

一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。以下是和file对象相关的所有属性的列表:

属性 描述

file.closed返回true如果文件已被关闭,否则返回false。

file.mode返回被打开文件的访问模式。

file.name返回文件的名称。

file.softspace如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

#打开一个文件
fo = open("foo.txt", "wb")print "Name of the file:", fo.nameprint "Closed or not :", fo.closedprint "Opening mode :", fo.modeprint "Softspace flag :", fo.softspace

read函数

read()方法从一个打开的文件中读取一个字符串。语法:

fileObject.read([count])

在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。

#打开一个文件
fo = open("/tmp/foo.txt", "r+")
str= fo.read(10);print "Read String is :", str#关闭打开的文件
fo.close()

write函数

Write()方法可将任何字符串写入一个打开的文件。Write()方法不在字符串的结尾不添加换行符('\n')。语法为:

fileObject.write(string)

在这里,被传递的参数是要写入到已打开文件的内容。

#打开一个文件
fo = open("/tmp/foo.txt", "wb")
fo.write("Python is a great language.\nYeah its great!!\n");#关闭打开的文件
fo.close()

注意文件的打开与关闭是成对出现的

try/except

捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。语法:

try: #运行别的代码

except : #如果在try部份引发了'name'异常

except ,: #如果引发了'name'异常,获得附加的数据

else: #如果没有异常发生

如下面例子所示

try:

fh= open("testfile", "w")
fh.write("This is my test file for exception handling!!")exceptIOError:print "Error: can\'t find file or read data"
else:print "Written content in the file successfully"fh.close()
try-finally

try-finally 语句无论是否发生异常都将执行最后的代码。语法为:

try:

finally: #退出try时总会执行

raise

注意:你可以使用except语句或者finally语句,但是两者不能同时使用。else语句也不能与finally语句同时使用。例如:

try:

fh= open("testfile", "w")
fh.write("This is my test file for exception handling!!")finally:print "Error: can\'t find file or read data"