python for everybody课程作业_Programming for Everybody (Python)-Lecture 7 课程笔记
Coursera上面一门为零基础学友提供的Python入门课程。貌似已经是我坚持第二久的课了XXD~
0. 之前的教学回顾
之前我们所学的Python语言都是集中于CPU和主存储器之间的(也就是下图黄圈内的)一些工作,目前为止我们掌握的所有的东西都是为了接下来“跳出黄圈圈,走向粉圈圈(辅助存储器)”做准备,小伙伴们准备好了嘛?(忘记这些圈圈的可以自觉复习第一周的功课~)
Week 7 课件截图
1.0 本周学习内容——文件 File
这里说的是储存于辅助存储器的文本文件(text file),是一系列的信息。
1.1 打开文件:open()
open函数是Python既有的嵌入式函数。
注:使用open命令之后,并不意味着你已经读取文件信息,而是得到一个“文件句柄(File Handle)”,说明你已经与文件建立了联系,可以读取它的信息(也可以想象成你念了一道open的咒令,新世界的大门向你打开,但真的只是“打开”而已;要得到宝藏,你还得自己走进去动手拿呀~)。
handle = open(filename, mode) * :括号内,逗号前面表示文件名,后面表示你希望打开文件的模式(即采取什么动作)。
例如:open('mbox.txt', 'r')* —— 其中,mbox.txt是你要打开的文件名,r说明你要读取它。
当然了,如果你要打开的文件不存在,就会报错。
1.2 换行:/n
文本文件可以看成是有一系列“行”组成的。在Python里面,我们在需要换行的字符之间加入“/n”表示换行。
注:每个换行(即每个“/n”)都占一个字符,和每个空格一样。
2.读取文件
用for循环(确定循环)。
2.1 数一数文件一共有几行?
fhand = open('mbox.txt')
count = 0
for line in fhand:
count = count + 1
print 'Line Count:', count
如果文件不是很大,我们还是可以让计算机为我们读取整个文件的:
fhand = open('mbox-short.txt')
inp = fhand.read()
print len(inp)
print inp[:20]
2.2 文档内搜索
通常可以有3种方式,随你喜欢。
2.2.1 startswith
fhand = open('mbox-short.txt')
for line in fhand:
line = line.rstrip()
if line.startswith('From'):
print line
注:为什么一定要用rstrip ?
每个“print"指令后面都会自带换行/n,每一行(每条line)后面本身也自带换行。因此如果没有rstrip()把每行后面的“/n"去掉,你就会看到写一行空一行的局面……
2.2.2 continue
如果整个程序非常复杂,那就比较适合用这个函数。
fhand = open('mbox-short.txt')
for line in fhand:
line = line.rstrip()
#Skip 'uninteresting lines'
if not line.startswith('From'):
continue
#Process our 'interesting' line
print line
注:这是一个逆向搜索("if not"),但是2.2.1和2.2.2的结果是一样的。所谓逆向搜索的思路基本上就是“如果某一行不是你想找的,那就略过(skip)这行,搜索下一行”。
这样的好处是:一旦某一行没有你要找的内容,那么Python就会回到循环的起点,而不用再理会其后复杂的程序。
2.2.3 in
之前两种方式都是对句首加以限制条件(startswith)来搜索,如果要找文中任意一个角落呢?那就要用上我们教师最喜欢的(之一XXD)"in".
fhand = open('mbox-short.txt')
for line in fhand:
line = line.rstrip()
if not l‘@uct.ac.za' in line:
continue
print line
2.3 给我一个文件名,剩下的就交给我吧: raw_input
你不用每次要处理文件的时候都写个Python,好辛苦。你要做的就是稍稍改进一下你的代码,比如:
fname =ray_input('Enter the file name:')
fhand = open(fname)
2.3.1 还有什么可以改善的:try/except
谨防有些熊孩子什么文件名都打得下手,“打”得不好(比如根本就不是个文件名啊什么的)系统狂报错怪我们写得不行,我们可以用个try/except结构来先检验一下~
fname =ray_input('Enter the file name:')
try:
fhand = open(fname)
except:
print 'File cannot be opened:', fname
exit()
count = 0
for line in fhand:
if line.startswith('Subject')
count = count + 1
print 'There were', count, 'subject lines in', fname
python for everybody课程作业_Programming for Everybody (Python)-Lecture 7 课程笔记相关推荐
- 代写python代码一般多少钱_代写CO 353课程作业、代做Python程序设计作业、代写Python语言作业...
代写CO 353课程作业.代做Python程序设计作业.代写Python语言作业 日期:2020-03-17 11:22 CO 353 - Homework assignment 4 Winter ' ...
- python程序设计作业_CS602留学生作业代做、代写Programming课程作业、代做Python语言作业、Python编程设计作业调试...
CS602留学生作业代做.代写Programming课程作业.代做Python语言作业.Python编程设计作业调试 日期:2019-12-06 10:50 CS602 - Data-Driven D ...
- 代写python期末作业价格_代做program留学生作业、代写Python语言作业、代做algorithm课程作业、代写Python程序设计作业...
代做program留学生作业.代写Python语言作业.代做algorithm课程作业.代写Python程序设计作业 日期:2020-01-09 10:13 Coursework Brief: ASS ...
- 兰州大学C语言程序设计课程作业,【兰州大学|兰州大学C语言程序设计课程作业( 五 )】语言程序设计|课程|作业-傻大方...
『易坊知识库摘要_兰州大学|兰州大学C语言程序设计课程作业( 五 )』34.用户未作答标准答案exp04. 以下叙述中正确的是 在程序的一行上可以出现多个有效的预处理命令行使用带参的宏时,参数的类型应 ...
- 兰州大学c语言课程作业答案,2016兰州大学C语言程序设计课程作业1附答案.doc
C语言程序设计课程作业_A 历次成绩完成时间查看详情1.0.02015-11-21 09:15:312.0.02015-11-21 09:15:243.0.02015-11-21 09:15:184. ...
- 计算机课程布置作业,计算机基础课程作业布置与批改方式-计算机基础课程有哪些.pdf...
最新资料欢迎阅读 计算机基础课程作业布置与批改方式 | 计算 机基础课程有哪些 计算机基础课程包括计算机基础. c 语言程序设计. office 高级 应用.access 数据库程序设计,大部分作业采 ...
- 大学计算机基础课程作业第4-6章,大学计算机基础课程作业(4—6章)(5页)-原创力文档...
大理大学成人高等教育 大学计算机基础课程作业(第4-6章) 1.课程名称:大学计算机基础 2.适用专业:非计算机类各专业 3.选用教材:大学计算机基础,陈本辉 杨锦伟 主编,北京师范大学出版社,201 ...
- python代写学生作业_代做python程序作业、代写 tree Tpython留学生作业
代做python程序作业.代写 tree Tpython留学生作业 日期:2018-05-27 02:10 Exercise 2 We are again interested in lists of ...
- 计算机专业指南 专 平时作业,《计算机专业指南》课程作业要求
<计算机专业指南>课程作业要求 <计算机专业指南>课程作业要求 考核要求和成绩评定 考核要求: 1.业的认识,专业岗位能力要求的调查和个人的课程学习安排. 2.学习心得报告,要 ...
最新文章
- POSIX正则表达式 验证电子邮件地址
- 《Android系统源代码情景分析》一书正在连载中
- Table中Family和Qualifier的关系与区别(转载)
- VC6获取硬盘序列号、型号、修订版本号
- 运维工程师是桥的护栏_【消息】秭归将建螺旋桥
- Java、Javascript、Javaweb三者的区别
- Elasticsearch+Mongo亿级别数据导入及查询实践
- 微软2011年10月最有价值专家(MVP)名单 51CTO十三位用户当选
- 【通信】基于量子密钥分发密钥率仿真含Matlab源码
- python运维系统模板,Python自动化运维之改造网页模板
- ACM河南第八届省赛题
- linux嵌入式主要学什么软件,嵌入式软件工程师需要学什么?嵌入式Linux开发的工作内容...
- 如何解决 Apple ID 验证失败,无法正常使用?
- linux根据修改日期删除,在Linux下怎么一次性删除掉那些修改时间为指定日期的所有文件?...
- 区别辨析(选择)choose、select、elect、pick、prefer、opt
- Python自动获取邮箱验证码【上集】
- CSS隐藏多余文字的几个方法
- 汇川MD500变频器学习之路(一)
- CLRS 18.2B树上的基本操作
- Mac Win7虚拟机
热门文章
- shell脚本if参数太多_Shell脚本用for循环遍历参数的方法技巧
- reactor线程模型_从TCP服务器到I/O模型,带你学习Netty
- mysql 分词搜索_MySQL5.7分词全文检索思路
- 拜托!不要再问我是否了解多线程了好吗
- java基础系列:集合总结(4)
- lucene教程--全文检索技术详解
- 【深入Java虚拟机JVM 08】JVM四种引用-强引用、软引用、弱引用、虚引用
- No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)...
- codeforces Educational Codeforces Round 49 (Rated for Div. 2) C题
- 网络爬虫初步:从一个入口链接开始不断抓取页面中的网址并入库