本次代码中用到的'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')
碎碎念:
看了看下一章,貌似有些对文件和异常处理的补充内容。这节课还是初窥。
下节课继续吧!