Python第三课-初探文件与异常

本次代码中用到的'sketch.txt'文件在Head First Python官网上有的下。

从文件读取数据:

常用方式:使用open() BIF和for循环读取基于行的文件内容。

open()使用的基本流程:
data = open(filename): #打开
print(data.read()) #处理
data.close() #关闭


完整版Demo:
'''打开一个名为'sketch.txt'的文件.
把读取到得每行数据利用':'分割处理为讲话者和讲话内容后输出'''

import os

if os.path.exists('sketch.txt'): #判断文件是否存在
    data = open('sketch.txt') #打开文件

    for each_line in data: #按行读取文件
        if each_line.find(':') != -1: #判断是否具备分割条件
            (role, line_spoken) = each_line.split(':', 1) #分割行
            print(role + ' said: ' + line_spoken) #分割后输出

    data.close() #关闭文件
else:
    print('The file is missing')


碎碎念:
1、字符串的find()内置方法,用来检索参数位置,返回指针值,如果未检索到返回-1.
2、字符串的split()内置方法,用来以sep参数为基准分割字符串,返回分割后的列表。
3、获取方法、函数的使用帮助信息,可以先导入该方法所在模块,然后help之。内置函数直接help之。
s = '2.33'
help(s.split)

import os
help(os.path.exists)

help(open)


处理异常:

异常处理:为使代码逻辑更加清晰,先尝试运行代码,然后处理可能会发生的错误。

基本的异常处理:
try:
    #尝试执行的代码
except:
    #用于恢复错误的代码


改进Demo:
try:
    data = open('sketch.txt')

    for each_line in data:
        try:
            (role, line_spoken) = each_line.split(':', 1)
            print(role + ' said: ' + line_spoken)
        except ValueError: #处理try代码块内特定错误类型的异常
            pass

    data.close() #关闭文件
except: #处理try代码块内所有错误类型的异常
    print('The file is missing')


碎碎念:
看了看下一章,貌似有些对文件和异常处理的补充内容。这节课还是初窥。
下节课继续吧!

你可能感兴趣的:(异常处理,python,文件)