凌天剑尊txt:初识Python(五)

来源:百度文库 编辑:中财网 时间:2024/05/05 14:18:00

输入输出

文件

创建、读和写文件的能力是许多程序所必需的,你可以通过创建一个file类的对象来打开一个文件,分别使用file类的readreadlinewrite方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用close方法来告诉Python我们完成了对文件的使用。

>>> f=file(r'E:\222.txt','w')  指定要写入的文件(没有会自动创建)  及  模式 'w':写  'r':读  'a':追加  默认是'r'

>>> str="abcdefgh"

>>> f.write(str)

>>> f.close()

>>> f=file(r'E:\222.txt','r')

>>> while True:

line=f.readline()  该方法返回包括行末换行符的一个完整行

if len(line)==0:   所以,当一个 空的 字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环

break

print line,        在print语句上使用逗号来消除自动换行

abcdefgh

>>> f.close()

存储器

Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。

还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。

>>> import cPickle as p     使用了import..as语法。这是一种便利方法,以便于我们可以使用更短的模块名称

>>> a=['a','b','c','d']

>>> f=file(r'E:\333.txt','w')

>>> p.dump(a,f)             调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为 储存 

>>> f.close()

>>> f=file(r'E:\333.txt')

>>> a=p.load(f)             使用pickle模块的load函数的返回来取回对象。这个过程称为 取储存

>>> print a

['a', 'b', 'c', 'd']

异常

我们把所有可能引发错误的语句放在try块中,然后在except从句/块中处理所有的错误和异常。

except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理 所有的 错误和异常。对于每个try从句,至少都有一个相关联的except从句。

import sys

try:

    s = raw_input('Enter something --> ')

except EOFError:

    print '\nWhy did you do an EOF on me?'

    sys.exit() # exit the program

except:

    print '\nSome error/exception occurred.'

    # here, we are not exiting the program

print 'Done'

引发异常

你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个ErrorException类的直接或间接子类。

class ShortInputException(Exception):

    '''A user-defined exception class.'''

    def __init__(self, length, atleast):

        Exception.__init__(self)

        self.length = length

        self.atleast = atleast

try:

    s = raw_input('Enter something --> ')

    if len(s) < 3:

        raise ShortInputException(len(s), 3)

    # Other work can continue as usual here

except EOFError:

    print '\nWhy did you do an EOF on me?'

except ShortInputException, x:                      x是伴随异常 触发的 异常对象

    print 'ShortInputException: The input was of length %d, \

          was expecting at least %d' % (x.length, x.atleast)

else:

    print 'No exception was raised.'

假如你在读一个文件的时候,希望在无论异常发生与否的情况下都关闭文件,该怎么做呢?这可以使用finally块来完成。

import time

try:

    f = file('poem.txt')

    while True: # our usual file-reading idiom

        line = f.readline()

        if len(line) == 0:

            break

        time.sleep(2)    每打印一行之前用time.sleep方法暂停2秒钟

        print line,

finally:

    f.close()

    print 'Cleaning up...closed the file'

Python标准库

Python标准库是随Python附带安装的,它包含大量极其有用的模块。熟悉Python标准库是十分重要的,因为如果你熟悉这些库中的模块,那么你的大多数问题都可以简单快捷地使用它们来解决。

os模块

这个模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。一个例子就是使用os.sep可以取代操作系统特定的路径分割符。

os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。

os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。

os.getenv()和os.putenv()函数分别用来读取和设置环境变量。

os.listdir()返回指定目录下的所有文件和目录名。

os.remove()函数用来删除一个文件。

os.system()函数用来运行shell命令。

os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。

os.path.split()函数返回一个路径的目录名和文件名。

os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。类似地,

os.path.existe()函数用来检验给出的路径是否真地存在。