现在的位置: 首页 > 综合 > 正文

12. 文件

2013年10月10日 ⁄ 综合 ⁄ 共 1924字 ⁄ 字号 评论关闭

12. 文件

         文件的访问几乎是每种都不可或缺的一种功能,当然对于python来说这就是必不可少的了。

         单刀直入,开始吧。要访问文件就要先打开文件,因此python为我们提供了一个open函数,这个函数会打开文件并返回一个文件类。然后通过文件类的方法来处理文件,当你处理完文件需要通过close函数告诉python这个文件我们已经使用完了,不再需要了。打开文件的时候还要告诉python我们希望打开文件后怎么处理文件,我们是要读文件还是创建或者向文件中写入信息。到底该怎么做来看看具体的例子吧:

#!/usr/bin/python

poem= '''\

Programmingis fun

Whenthe work is done

ifyou wanna make your work also fun:

        use Python!

'''

 

f =file('poem.txt', 'w') # open for 'w'riting

f.write(poem)# write text to file

f.close()# close the file

 

f =file('poem.txt')

#if no mode is specified, 'r'ead mode is assumed by default

whileTrue:

    line= f.readline()

    if len(line) == 0: # Zero length indicatesEOF

        break

    print line,

    # Notice comma to avoid automatic newlineadded by Python

f.close()# close the file

      首先我们打开一个叫poem.txt的文件,并告诉python我们想要写入这个文件,因此我们需要向open函数给定第二个参数'w',当这个文件不存在的时候python会为我们创建这个文件。然后我们通过文件类中的write方法将之前定义好的一段文字写到文件中,接着关闭文件。在程序的第二部分中,我们要打开之前的poem.txt文件,我们可以显示的给定函数第二个参数'r',告诉python我们想要从中读取内容,如果不给定第二个参数则会默认是只读模式,打开文件的模式有很多,自己help(file)。在一个循环中,我们使用readline方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个空的字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。注意,因为从文件读到的内容已经以换行符结尾,所以我们在print语句上使用逗号来消除自动换行。最后,我们用close关闭这个文件。

Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为持久地 储存对象。还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。你可以使用它们中的任一个,而我们在这里将使用cPickle模块。记住,我们把这两个模块都简称为pickle模块。看例子将例子:

#!/usr/bin/python

# Filename: pickling.py

import cPickle as p

#import pickle as p



shoplistfile = 'shoplist.data'

# the name of the file where we will store theobject

 

shoplist = ['apple', 'mango', 'carrot']

 

# Write to the file

f = file(shoplistfile, 'w')

p.dump(shoplist, f) # dump the object to afile

f.close()

 

del shoplist # remove the shoplist

 

# Read back from the storage

f = file(shoplistfile)

storedlist = p.load(f)

print storedlist

首先,请注意我们使用了import..as语法。这是一种便利方法,以便于我们可以使用更短的模块名称。在这个例子中,它还让我们能够通过简单地改变一行就切换到另一个模块(cPickle或者pickle)!在程序的其余部分的时候,我们简单地把这个模块称为p。为了在文件里储存一个对象,首先以写模式打开一个file对象,然后调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为 储存 。接下来,我们使用pickle模块的load函数的返回来取回对象。这个过程称为 取储存 。

       好吧,这个貌似很少啊,但是这本书只讲了这么多啊。。。

 

抱歉!评论已关闭.