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 paperclip_Pyt
- 下一篇: python读取html文件中的表格数据