head first 中的 document 处理

'''简单的读取文件'''
1.import os     
2.os.getcwd()    #获取当前工作路径
3.os.chdir()    #切换目录
4.data = open('sketch.txt')    #打开一个文件并赋至data
5.print(deta.readline(), end='')    #读取data文件中的第一行数据
6.data.seek(0)    #回到文件起始位置
7.for each_line in data:    #打印data文件的每一行数据
    print(each_line, end'')
8.data.clos()    #关闭文件

1. split()方法调用

(role, line_spoken) = each_line.split(':', 1)

以 ‘:’为分界将数据分为两段分别指给参数role 和 line_spoken

2.异常处理程序try / except 代码保护机制

try:
    data = open('sketch.txt')

    for each_line in data:    #循环data文件的每一行内容
        try:    #代码保护遇到异常数据执行 pass ,从而保护已有功能正常运行
            (role, line_spoken) = each_line.split(':', 1)    #调用split(':', 1)方法,1为可选参数--当语句中有多个':'时使用第一个;  
            print(role, end='')
            print(' said: ', end="")    #加入“said:” end='' 不换行print()默认是换行的
            print(line_spoken, end='')
        except:
            pass

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

3.加入更多代码处理异常 if not 和 import os

import os    
if os.path.exists('sketch.txt'):    #判断执行路径中的文件是否存在 os.path.exists()方法判断执行文件是否存在
    data = open('sketch.txt')

    for each_line in data:
        if not each_line.find(':') == -1:    #判断数据中是否存在‘:’如果存则往下执行,等于-1则表示不存在; find(':')方法可以找到“:”的位置
            (role, line_spoken) = each_line.split(':', 1)
            print(role, end='')
            print(' said: ', end="")
            print(line_spoken, end='')
        

    data.close()
else:
    print('The data file is missing!')

 总结:两种处理方法都能解决异常,我更倾向于try / except方法--简单,易读,注重考虑想达到的目的。

posted @ 2018-08-22 21:52  nester_liz  阅读(172)  评论(0)    收藏  举报