设为首页 收藏本站
查看: 753|回复: 0

[经验分享] Python第三课-初探文件与异常

[复制链接]
发表于 2017-4-29 14:50:14 | 显示全部楼层 |阅读模式
本次代码中用到的'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')


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-370898-1-1.html 上篇帖子: python 反编译 pyc 一些心得 下篇帖子: python 局部变量和全局变量 global
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表