python专题

Python之文件操作

2018-03-26  本文已影响0人  扯扯_2c79

文件读写

文件读写是最基本的IO操作,在Python中内置了open函数来用于文件的读写操作,此函数创建一个文件对象,该对象将用于调用与其相关联的其他支持方法。

open函数基本语法:

open(filename, mode, buffering, encoding, errors)
参数 说明
filename 文件的名字,或者文件名字的相对路径
mode 对文件执行的操作模式
buffering 如果buffering值设置为0,则不会发生缓冲。 如果缓冲值buffering为1,则在访问文件时执行行缓冲。如果将缓冲值buffering指定为大于1的整数,则使用指定的缓冲区大小执行缓冲操作。如果为负,则缓冲区大小为系统默认值(默认行为)。
encoding 指定文件的编码格式
errors 错误处理

以下是打开文件使用的模式的列表:

模式 解释
r 打开的文件为只读模式。文件指针位于文件的开头,这是默认模式。
rb 打开仅用二进制格式读取的文件。文件指针位于文件的开头,这是默认模式。
w 打开仅供写入的文件。 如果文件存在,则覆盖该文件。 如果文件不存在,则创建一个新文件进行写入。
wb 打开仅用二进制格式写入的文件。如果文件存在,则覆盖该文件。 如果文件不存在,则创建一个新文件进行写入。
a 打开一个文件进行追加。 如果文件存在,则文件指针位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,它将创建一个新文件进行写入。
ab 打开一个二进制格式的文件。如果文件存在,则文件指针位于文件末尾。 也就是说,文件处于追加模式。如果文件不存在,它将创建一个新文件进行写入。

示例:

file = open('1.txt', 'r', encoding='utf-8', errors='ignore')
for i in file.readlines():
    print(i)

open函数打开文件后得到的是一个文件对象,使用readlines方法得到一个列表,使用for循环遍历,并将结果打印到终端。

文件对象可使用的方法:

方法 说明
read() 来直接读取字节到字符串中,可以指定读取数目,默认是文件将被读取直至末尾
readline() 识别'\n'换行符来读取文件的一行数据
readlines() 用来将读取的所有行作为一个字符串列表返回
write() 将内容写入文件

文件读写异常处理

在文件的读写中开始很简单很少的代码就可以实现,但是文件在进行读写的过程中是最容易出错的,而且多数是无法预知的,试想如果一台生产服务器如果出现了差错给用户带来的体验就是级差的,所以这个时候对于异常处理就特别重要了。

在Python中捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

使用语法:

try:
  <语句>        #运行别的代码
except <错误名字> as :
  <语句>        #如果引发了错误异常,获得附加的数据
else:
  <语句> 

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

示例:

try:  # 如果文件打开失败了就执行except中的代码,然后继续执行,而不是出现程序崩溃
with open('1.txt', 'r', encoding='utf-8', errors='ignore') as file:
    for i in range(10):
        lines = file.readline()
        print(lines, end='')
except FileExistsError as e:  # 表示将异常保存到e里面,方便后面显示错误
    print(e)
    print('指定文件无法打开')
else:
    print('程序执行结束')

说明:因为使用了with...as...语句,所有当我们打开了文件后无论最后程序是否正常执行完毕都能够自动的关闭文件。详细的异常错误参见菜鸟教程-python标准异常

注意:

上一篇下一篇

猜你喜欢

热点阅读