1.介绍基础文件,输入,输出

open()
打开文件,一次传入一行数据,可以结合for循环和readline()来使用

close()
用来关闭open打开的文件

the_file = open('sketch.txt')the_file.close()

例子:

>>> data = open('/root/python_test/site_list.txt')
>>> print(data.readline())
www.godblessyuan.com

一些基础的目录管理函数

>>> import os
>>> os.getcwd()   #获取当前目录
'/root'
>>> os.chdir('/root/python_test')  #切换目录
>>> os.getcwd()
'/root/python_test'
>>>

2.需要对数据做一些处理,例如像分隔它,以冒号为分界符

>>> data = open('/root/python_test/headfirstpython/sketch.txt')
>>> for each_line in data:
...     (role,line_spoken) = each_line.split(':')   #这里使用idel时候,需要注意的是代码之间的缩进
...     print role
...     print line_spoken
... Other ManAnyway, I did.ManYou most certainly did not!Traceback (most recent call last):File "<stdin>", line 2, in <module>
ValueError: too many values to unpack

遇到报错了,报错意思大概是太多值导致没有被处理,检查发现是因为有些数据是超过一个冒号的,所以这些数据会出错,因为split()处理不了,但是检查了split函数的使用说明,发现是可以支持这种情况的,

>>> help(each_line.split)
Help on built-in function split:split(...)
S.split([sep [,maxsplit]]) -> list of stringsReturn a list of the words in the string S, using sep as the
delimiter string.  If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator and empty strings are removed
from the result.
(END)

1.检查方式可以参考上面的方法。

2.支持这种情况的参数是一个叫maxsplit的参数,如果有maxsplit的话,那么至多是maxsplit的数量以上的分界符才会被处理,这样就很好的避免太多分界符的情况了。

如这样:

data = open('sketch.txt')for each_line in data:(role, line_spoken) = each_line.split(':', 1)print roleprint line_spokendata.close()

不过,即使加了参数,还是遇到报错了

ManOh no you didn't!Other ManOh yes I did!ManOh look, this isn't an argument!Traceback (most recent call last):File "<stdin>", line 2, in <module>
ValueError: need more than 1 value to unp

这里是说需要超过一个值去处理,查看了数据,发现是有些数据没有冒号导致程序处理失败。

3.增加逻辑来处理

首先通过观察find()方法对于不同的数据返回的值是不同的。

>>> each_line = 'iiiii'
>>> each_line.find(':')
-1
>>> each_line = 'iiiii:'
>>> each_line.find(':')
5
>>>

然后可以使用的逻辑有2种,一种是if判断,另外一种是try:expoet

try:你的代码(可能会导致运行错误的)
except:错误回复代码

这种方式的机制是通过捕获某代码的错误,然后执行响应的修复代码,例子:

data = open('sketch.txt')for each_line in data:try:(role, line_spoken) = each_line.split(':', 1)print roleprint line_spokenexcept:passdata.close()

如果

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

这里有其中一句代码是执行失败的,都会转到pass里面去,pass代表空语句,或者null,什么也不做。

或者就是使用最简单的if判断

for each_line in data:if not each_line.find(':') == -1:   #not关键字是将一个条件取反(role, line_spoken) = each_line.split(':', 1)print(role, end='')print(' said: ', end='')print(line_spoken, end='')data.close()

不过需要注意的是,像下面这种多重try:except的代码是很容易影响到我们判断那一部分代码才是真正有问题的代码,因为无论里面和外面的try出错了,都会返回 print('The datafile is missing!'),这样就不能判断是那部分代码有问题了。

try:data = open('sketch.txt')for each_line in data:try:(role, line_spoken) = each_line.split(':', 1)print roleprint line_spokenexcept:passdata.close()
except:print('The datafile is missing!')

所以需要加一些标记,标识(ValueError-数据不符合期望的格式时会出现,IOError-数据无法正常访问时会出现。)

try:data = open('sketch.txt')for each_line in data:try:(role, line_spoken) = each_line.split(':')print roleprint line_spokenexcept ValueError:passdata.close()
except IOError:print('The datafile is missing!')

http://www.godblessyuan.com/2015/04/20/head_first_python_chapter_3_lea...

head first python(第三章)–学习笔记相关推荐

  1. 工程伦理第三章学习笔记2020最新

    工程伦理第三章学习笔记2020最新 因为之前自己在网上找答案总是觉得费劲,一道一道的找,很慢,突然找到了前两章的答案,感觉有一种前人种树后人乘凉的感觉,于是自己在艰难找完第三章习题并全对的情况下,将题 ...

  2. 多维随机变量及其分布——《概率论及其数理统计》第三章学习笔记

    多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 文章目录 多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 前言 MindMap 二维随机变量 定义与 ...

  3. 周志华西瓜书第三章学习笔记

    第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...

  4. 《HeadFirst Python》第一章学习笔记

    对于Python初学者来说,舍得强烈推荐从<HeadFirst Python>开始读起,这本书当真做到了深入浅出,HeadFirst系列,本身亦是品质的保证.这本书舍得已在<Pyth ...

  5. 孙鑫VC++深入详解第三章学习笔记

    第三章 3.1创建MFC AppWizard 如何利用vs2019创建MFC应用见参考文献[1] 需要注意的地方有 [1] 创建MFC单文档应用程序 [2]开启类视图窗口 3.2基于MFC的程序框架剖 ...

  6. 《Python数据分析》第二版.第三章.[学习笔记][Jupyter notebook]

    第3章 Python的数据结构.函数和文件 1.元组是一个固定长度,不可改变的Python序列对象 tup = 4, 5, 6 nested_tup = (4, 5, 6), (7, 8) #复杂元组 ...

  7. 计算机系统结构sw指令集,《深入理解计算机系统》第三章学习笔记

    ###通过本周的学习,总结出一下知识内容 ###机器级代码 计算机系统使用了多种不同形式的抽象,利用更简单的抽象模型来隐藏实现的细节. 对于机器级编程来说,其中两种抽象尤为重要: 1.指令集体系结构( ...

  8. Python第三周 学习笔记(2)

    直接选择排序: 两两比较大小,找出极值(极大值或极小值)被放置在固定的位置,这个固定位置一般指的是 某一端 n个数从左至右,索引从0开始到n-1,两两依次比较,记录大值索引,此轮所有数比较完毕,将大数 ...

  9. 流畅的python第一章_《流畅的Python》第一章学习笔记

    一摞python风格的纸牌from collections import namedtuple Card = namedtuple('Card', ['rank', 'suit']) # 构建只有少数 ...

  10. 《流畅的Python》第一章学习笔记

    一摞python风格的纸牌 from collections import namedtupleCard = namedtuple('Card', ['rank', 'suit']) # 构建只有少数 ...

最新文章

  1. 2021全国高校计算机能力挑战赛(初赛)Java试题三
  2. 《自然-神经科学》发表脑智卓越中心关于昼夜节律中枢的研究成果
  3. Windows 2003不同域之间迁移密码方法笔记截图
  4. [Winodows Phone 7控件详解]控件基础
  5. 19年8月 字母哥 第四章 常用web开发数据库框架 不要用公司网络加载不出来 用热点!!!
  6. Linux的 i2c 驱动框架分析
  7. LeetCode 1138. 字母板上的路径
  8. 定时重启php,linux系统定时重启
  9. PHP逆波兰表达式的算法
  10. 安卓的基本的动画介绍
  11. 收藏一些名人的博客,有空多看看
  12. linux下hex文件到bin文件的格式转化,bin文件转换为hex文件操作步骤解析
  13. Word 尾部空格添加下划线
  14. 点击扫一扫二维码返回文本内容
  15. 16岁天才开发的Summly获李嘉诚种子投资
  16. 北大教授:学术会议,已沦为表演
  17. html json是什么文件,JSON是什么?
  18. 终于学完了阿里P8架构师7年心血整理总结的微服务实战文档
  19. ATF(Arm Trusted Firmware)/TF-A Chapter 04 Authentication Framework
  20. [Offer收割]编程练习赛2 hihocoder 1272 买零食 (DFS 或 dp 水题)

热门文章

  1. python网络库_python的网络库
  2. linux 使用ssr客户端_【第一期】基于 @vue/cli3 与 koa 创建 ssr 工程
  3. python 数组维度_python – 非常基本的Numpy数组维度可视化
  4. linux subversion 根目录检出,经验总结:详解Linux下Subversion的安装配置记录 下
  5. 判断是否有小数_一线老师笔记:数学判断题拿高分的技巧
  6. pojBuy Tickets2828线段树或者树状数组(队列中倒序插队)
  7. perl数组硬引用_Perl 继续前行,Perl 7 将是下一代(硬核老王点评版)
  8. oracle ora 12011,执行oracle中的job报错:ORA-12011:无法执行作业1
  9. php文章列表样式,PHPCMS V9 文章列表循环样式自定义方法
  10. linux课堂笔记(6)