详解python中的异常和文件读写

  • Post category:Python

详解Python中的异常和文件读写

异常处理

在Python中,异常处理是一种常见的技术,可以对程序出现的异常情况做出响应。当程序发生异常时,如果没有进行处理,程序将会崩溃并退出,而使用异常处理技术可以避免这种情况的发生。

try-except语句

经常使用的异常处理方案之一是使用try-except语句。try语句块中包含要执行的代码,当代码主动抛出异常时,会把控制流转移到except语句块,从而实现错误处理。

下面是一个示例:

try:
    # 执行正常的代码
    f = open('file.txt', 'r')
    result = f.read()
    print(result)
    f.close()
except FileNotFoundError:
    # 处理文件不存在的情况
    print("File not found.")
except Exception as e:
    # 处理其他异常情况
    print(e)

在这个例子中,首先尝试打开名为”file.txt”的文件并读取它的内容,如果文件不存在,则会抛出FileNotFoundError异常。如果发生其他异常情况,则可以通过except语句块来处理这种情况。

raise语句

除了Python本身会抛出一些异常外,我们也可以使用raise语句来主动抛出异常。这对于自定义异常和错误处理非常有用。

下面是一个示例:

try:
    x = int(input("请输入一个整数: "))
    if x < 0:
        raise ValueError("整数必须大于等于0")
    print("输入的整数是:", x)
except Exception as e:
    print(e)

在这个例子中,程序试图从用户输入中获取一个整数,如果用户输入一个小于0的整数,将会抛出一个ValueError异常。

文件读写

Python中内置了用于处理文件的函数和模块,允许我们读取和写入文件。

打开和关闭文件

在Python中打开文件后,必须关闭它。为了避免忘记关闭文件,我们可以使用上下文管理器来打开文件,这样在代码块结束时,文件将自动关闭。

下面是一个示例:

with open('file.txt', 'r') as f:
    # 执行读取文件内容的操作
    result = f.read()
    print(result)

在这个例子中,使用open函数打开名为”file.txt”的文件并读取它的内容。当代码块结束时,文件将自动关闭。

读取文件

在Python中,有几种读取文件的方式,包括:

  • read():返回一个包含整个文件内容的字符串
  • readline():返回文件中的一行
  • readlines():返回一个包含文件中所有行的列表

下面是一个示例:

with open('file.txt') as f:
    contents = f.read()
    print(contents)

在这个例子中,使用open函数打开名为”file.txt”的文件并读取它的内容。使用read()方法读取整个文件内容,并打印输出。

写入文件

在Python中,也有几种写入文件的方式,包括:

  • write():向文件中写入字符串
  • writelines():向文件中写入多行字符串

下面是一个示例:

with open('file1.txt', 'w') as f:
    f.write("Hello, World!\n")
    f.write("Welcome to Python!\n")
    f.write("See you again!")

在这个例子中,使用open函数打开名为”file1.txt”的文件并写入三行内容。

总结

异常处理和文件读写是Python编程中非常基本的技术。通过掌握这些技术,我们可以更好地处理常见的错误情况,并实现读取和写入文件的操作。以上是详解Python中的异常和文件读写的完整攻略。

另外,以下是异常和文件读写的两个示例,分别说明异常和文件读写的案例实现:

示例1:异常处理

try:
    int('a')
except ValueError:
    print("值错误!")
except Exception as e:
    print(e)
else:
    print("无异常!")
finally:
    print("一定会执行的代码块!")

在这个示例中,尝试把一个字符串类型的变量转换为整数类型,由于字符串’a’无法转换成整数,程序会抛出一个ValueError异常。由于我们在try语句块中使用了except ValueError语句块,所以程序会通过这个语句块抓取这个异常,并输出”值错误!”。在try语句块结束后,else块不会被执行,而不论是否发生异常,finally块中的内容都会被执行。

示例2:文件读写

with open('file1.txt', 'r') as f:
    for line in f:
        print(line.strip())

在这个示例中,使用with语句打开名为”file1.txt”的文件,并使用for循环遍历文件中的每一行内容,并输出每一行的内容。注意,每一行输出时会带有一个换行符,所以需要使用strip()函数来去掉换行符。