`

六Python异常和文件处理(一)

阅读更多

1.异常处理

    和许多面向对象语言一样,Python具有异常处理,通过使用try……except快来实现。异常在Python中无处不在,Python自己会在许多不同的情况下引发它们。

        使用不存在的字典关键字将引发KeyError异常。

        引用不存在的变量将引发NameError异常。

        未强制转换就混用数据类型将引发TypeError异常。

    如果知道一行代码可能会引起异常,我们应该使用一个try……except块来处理异常。 

#-------------------------------------------------------------------------------
# coding:        utf-8
# Purpose:Python异常
#
# Author:      zdk
#
# Created:     21/02/2013
# Copyright:   (c) zdk 2013
#-------------------------------------------------------------------------------

if __name__ == '__main__':
    try:
        fsork =open("c:\\","r")
    except IOError:
        print("the file does not exist!")
    print("this line will always print")
运行结果
the file does not exist!
this line will always print

    因为有try……except,所以才能得到上面想要的输出结果。 

   为其他用途使用异常 

if __name__ == '__main__':
    try:
        import termios,TERMIOS
    except ImportError:
        try:
            import msvcrt
        except ImportError:
            getpass = 'deault_getpass'
        else:
            getpass = 'win_getpass'
    else:
        getpass = 'unix_getpass'
    print(getpass)

    (1)一个try……except块可以有一条else子句,就像if语句那样,如果在try块中没有异常引发,然后else子句被执行  

 

2.与文件对象共事

    Python有一个内置函数:open,用来打开磁盘上的文件,open返回一个文件对象,它拥有一些方法和属性,可以得到被打开文件的信息,以及对被打开文件进行操作。

d:\\pythonTest.txt文件相关内容:
2013/01/27 21:17:52 : the first line
2013/01/28 21:17:53 : the second line

 

#-------------------------------------------------------------------------------
# coding:        utf-8
# Purpose:文件相关操作
#
# Author:      zdk
#
# Created:     22/02/2013
# Copyright:   (c) zdk 2013
#-------------------------------------------------------------------------------

if __name__ == '__main__':
    try:
        f =open("d:\\pythonTest.txt","rb")
        print(f.name)   # d:\pythonTest.txt
        print(f.mode)   # rb
        print(f.tell())   # 0
        f.seek(-28,2)
        print(f.tell())   # 47
        data = f.read()
        print(data)         # b'8 21:17:53 : the second line'
        print(f.tell())   # 75
        f.close()
    except IOError:
        print("the file does not exist!")
    print("this line will always print")

    (1)f =open("d:\\pythonTest.txt","rb") ,open方法可以接收三个参数:文件名、模式和缓冲区,只有第一个参数是必须的;其他两个是可选的,如果没有指定,文件以文本方式打开。这里我们以二进制方式打开文件进行读取。(print (open.__doc__)会给出所有可能的模式)

    (2)open函数返回一个对象,此对象有mode(何种方式被打开)、name(文件名称)等属性。

    (3)print(f.tell())一个文件对象维护它所打开的状态,tell方法返回当前位置,因为还没有对文件做任何事,当前位置为0,它是文件的起始处。

    (4)文件对象的seek方法在被打开文件中移动到另一个位置。第二个参数有三个值:0表示移动到一个绝对位置;1表示移动到一个相对位置;2表示相对于文件末尾。f.seek(-28,2) 移动到倒数第28个字节。

    (5)f.read()从被打开文件中读取指定个数的字节,并返回含有数据的字符串。如果没有指定参数,将读到文件末尾

    (6)打开文件消耗系统资源,并且期间其它程序可能无法访问,这就是一旦操作完毕就应该关闭文件的重要所在。close方法可以关闭文件,closed属性可以判断文件是否关闭 。对关闭了的文件对象操作将会抛异常。

 

    我们既然能读取文件,当然也能写入文件。有两种基本的文件写入模式:1 写入(write)模式将覆盖文件的原有内容;2 追加(append)模式将数据追加到文件尾。如果文件不存在,任意一种模式都将自动创建文件   

    try:
        logfile = open("d:\\test.log","w")
        logfile.write("1.test write model succeeded")
        logfile.close()
        print(open("d:\\test.log").read()) #1.test write model succeeded

        logfile = open("d:\\test.log","a")
        logfile.write("  2.test append model succeeded")
        logfile.close()
        print(open("d:\\test.log").read()) #1.test write model succeeded  2.test append model succeeded
    except IOError:
        print("the file does not exist!")

 

 

分享到:
评论

相关推荐

    python 实验九 文件与异常

    在Python编程语言中,文件操作和异常处理是两个至关重要的概念。它们对于任何软件开发者来说都是基础且实用的技能。本实验将引导你深入理解如何在Python中进行文件的读写操作,以及如何有效地处理程序运行时可能出现...

    文件处理和异常处理【Python一周入门教程7】

    文件处理和异常处理【Python一周入门教程7】

    Python异常和错误实践手册 新手必备

    Python 异常和错误实践手册是 Python 开发语言后端中非常重要的一部分。在实际工作中,我们遇到的情况不可能是非常完美的。例如用户输入不一定符合我们的要求,文件可能不存在或者文件格式不对,数据库的数据可能是...

    python的异常处理.rar

    总之,Python的异常处理机制提供了一种强大的方式来确保程序在遇到问题时不会崩溃,而是能够优雅地处理错误,从而提高程序的稳定性和可靠性。通过熟练运用`try/except/else/finally`,开发者可以编写出更加健壮的...

    15.python异常处理1

    Python 是一种高级编程语言,它提供了一个强大的异常处理机制,以便开发者能够更好地处理程序中的错误和异常。在 Python 中,异常是一种特殊的对象,它可以在程序执行过程中抛出,以便通知开发者出现了某种错误。 ...

    Python异常处理详解:掌握错误处理的艺术

    异常处理是Python编程中的一个重要概念,它允许程序在遇到错误时优雅地恢复。通过本文的介绍,你应该对如何在Python中捕获、处理、抛出和自定义异常有了更深入的理解。掌握异常处理的最佳实践,将有助于你编写更加...

    Python实现读取Properties配置文件的方法

    虽然Python标准库并未直接提供处理此类文件的模块,但我们可以自定义一个类来实现这个功能。本篇文章将详细探讨如何通过Python来读取并解析`.properties`配置文件。 首先,了解`.properties`文件的格式。这种文件...

    Python:Python异常处理与调试

    通过以上示例,我们可以看到Python异常处理的基本原理和操作。异常处理不仅增强了程序的健壮性,还使得错误信息的传递更加清晰和可控。在实际编程中,合理使用异常处理可以显著提高代码的质量和可维护性。 #### 三...

    python的相关文件操作练习

    在Python编程语言中,文件操作是一项基础且至关重要的技能,尤其对于数据处理、日志记录以及文件存储等应用场景。在“python的相关文件操作练习”中,我们将探讨如何使用Python进行文件的读取、写入、追加以及其他...

    Python文件操作和异常处理.docx

    在文件处理中,它可能用于找出最长的行。 - `enumerate()`:这个函数将一个可遍历的数据对象(如列表)组合成一个索引序列,同时列出数据和数据的下标。在读取文件时,它可以用于跟踪每一行的索引和内容。 2. **...

    Python中的文件操作和异常处理.docx

    在Python编程中,文件操作和异常处理是两个不可或缺的核心概念。了解并熟练掌握这两个主题,可以使你的代码更加高效且易于维护。以下是对这两个概念的详细解释。 ### 文件操作 Python提供了丰富的内置函数来处理...

    Python小型磁盘文件管理系统源码.zip

    错误处理是任何软件开发中的重要部分,Python的异常处理机制(try/except语句)将用于捕获和处理可能出现的错误,比如文件不存在或权限不足。 最后,考虑到这是一个源码包,可能存在一些额外的开发和部署工具,如`...

    第12章 python文件存取和异常处理-python基础,快速入门.pptx

    - 常见的Python异常有`IOError`(输入/输出错误)、`ValueError`(值错误)、`TypeError`(类型错误)等,学习Python时,了解这些常见异常的含义和处理方式非常重要。 4. **其他文件操作** - `readline()`方法...

    python文件处理与异常

    python中文件处理与异常处理简单的知识介绍。

    python异常处理学习.docx

    Python 异常处理是 Python 编程语言中的一种错误处理机制,用于捕捉和处理程序中出现的异常情况。Python 中的异常处理可以分为两种:try-except 语句和 try-finally 语句。 try-except 语句的基本语法是:try:执行...

    python:socket传输大文件示例

    这里使用了结构体`struct`进行打包和解包,定义了一个包含128个字符的文件名和一个整型的文件大小。 5. **接收文件策略**: - 服务器端使用循环接收数据,每次接收102400字节,或者剩余数据不足时接收所有剩余数据...

    Python读入文件并逐行处理.docx

    Python 读取文件并逐行处理是 Python 编程中的一个基本操作。该操作可以应用于多种场景,例如数据处理、文件分析、文本处理等。 文件读取 Python 中有多种方式来读取文件,包括使用 `open` 函数、`with` 语句、`...

    python定时备份文件

    在IT行业中,Python是一种强大的脚本...综上所述,Python的定时备份文件涉及到定时任务调度、文件压缩、文件遍历以及异常处理等多个知识点,通过合理利用Python的相关库和工具,我们可以构建出高效可靠的文件备份系统。

    python异常和文件处理机制详解

    ### 文件处理机制 在Python中,文件操作是非常常见的任务之一。通过`open`函数可以打开文件,并进行读写操作。 #### 三、文件操作的基本步骤 1. **打开文件**:使用`open()`函数。 2. **读写文件**:使用文件对象...

    Python第十章-文件和异常.pdf

    在Python编程中,文件处理和异常处理是两个关键的领域,它们对于开发高效、稳定、用户友好的程序至关重要。在“Python第十章-文件和异常”这一章节中,你将深入学习如何操作文件以处理大量数据,以及如何通过错误...

Global site tag (gtag.js) - Google Analytics