zoukankan      html  css  js  c++  java
  • 初识Python(五)

    输入输出

    文件

    创建、读和写文件的能力是许多程序所必需的,你可以通过创建一个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()函数用来检验给出的路径是否真地存在。

  • 相关阅读:
    logback 范例
    mysql中int、bigint、smallint 和 tinyint的区别详细介绍
    MySQL中视图和普通表的区别
    Linux 下升级JDK 1.7到1.8
    本人遇到的spring事务之UnexpectedRollbackException异常解决笔记
    Spring 调度任务@scheduled学习总结
    javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint
    spring中的scope详解
    Spring Boot 静态资源处理
    用人所长
  • 原文地址:https://www.cnblogs.com/hanmeimei/p/python5.html
Copyright © 2011-2022 走看看