Notes of Py for informatics 2
来源:互联网 发布:eagle软件官网 编辑:程序博客网 时间:2024/06/05 12:01
Chapter 7 Files
File Processing
www.py4inf.com/code/mbox-short.txt
open() returns a "file handle" - a variable used to perform operations on the file
handle is a connection. doesn't actually have data
kind of like "File -> Open" in a Word Processor
handle = open(filename, mode) #filename is a stringfhand = open('mbox.txt','r') #'r':reading,'w':writing
stuff = 'Hello\nWorld' #\n means new line, and it is counted as a characterprint stuffprint len(stuff)output:
HelloWorld11
Counting Lines in a File
xfile = open('/Users/huyifan/documents/mbox.txt')count = 0for line in xfile: count = count + 1print 'Line Count:',countimportant! A file handle ope for read can be treated as a sequence of strings where each line in the file is a string in the sequence
Reading the *Whole* File
Use read() to read the whole file (newlines and all) into a single string.
xfile = open('/Users/huyifan/documents/mbox.txt')inp = xfile.read()print len(inp)print inp[:20]output:
94625From stephen.marquar
Searching Through a Filefor line in xfile: if line.startswith('Author'): print lineoutput:
Author: stephen.marquard@uct.ac.za #why there are black lines? because of \n !Author: louis@media.berkeley.eduAuthor: zqian@umich.eduAuthor: rjlowe@iupui.eduAuthor: zqian@umich.eduAuthor: rjlowe@iupui.eduWe can use the rstrip() or lstrip().
for line in xfile: if line.startswith('A'): print line.rstrip()
output:
Author: david.horwitz@uct.ac.zaAuthor: stephen.marquard@uct.ac.zaAuthor: louis@media.berkeley.eduAuthor: louis@media.berkeley.eduAuthor: ray@media.berkeley.eduAuthor: cwen@iupui.eduAuthor: cwen@iupui.eduAuthor: cwen@iupui.edu
Skipping with continue
for line in xfile: if not line.startswith('Author'): #or: if not '@media.berkeley.edu' in line: continue #process our 'interesting lines' print line.rstrip()
The output will be the same.
Bad File Names
fname = raw_input('Enter the file name:')try: fhand = open(fname)except: print 'File cannot be openned:', fname exit()count = 0for line in fhand: if line.startswith('Author:'): count = count + 1print 'There were', count, 'pieces of important information'
Chapter 8 Lists
8.1 basic understanding and operations
A list is a kind of collection.
A collection allows us to put many values in a single "variable"
like:friends = ['Joe','Joey','Joseph']A list element can be any Python object - even another list
print [[1,2],3,4]
A list can be empty
print []
Strings are "immutable" - we cannot change change the contents of a string - we must make a new string to make any change
Lists are "mutable" - we can change an element of a list using the index operator
len()
print len([[1,2],3,4])
Using the range function: generate a list
print range(4) # often be used as: for i in range(len(friends)) friend[i]output:
[0, 1, 2, 3]Concatenating list using +
print range(4)+[2,3]output:
[0, 1, 2, 3, 2, 3]
Slice lists: like 'strings'
8.2 Build-in Functions
Building a list from scratch: xxx.append()
stuff = list()stuff.append('book')stuff.append(99)print stuff
output:
['book', 99]
xxx in xxxx?
Order the list
friends = ['Joey','Joe','Joseph','Mike','Ellen']friends.sort()print friendsoutput:
['Ellen', 'Joe', 'Joey', 'Joseph', 'Mike'] #important: it has changed itself!The sort method (unlike in strings) means "sort yourself"
other useful build-in functions
len(numbers), max(numbers), min(numbers), sum(numbers)
Strings -> Lists: Use split()/split(';')/... to break a string into parts and produces a list of strings. (leave out all the comma/space..)
abc = 'With three words'stuff = abc.split()print stuffprint len(stuff)output:
['With', 'three', 'words']3
abc = 'With;three;words'stuff1 = abc.split()stuff2 = abc.split(';') #important!print stuff1print stuff2print len(stuff1)print len(stuff2)output:
['With;three;words']['With', 'three', 'words']13
0 0
- Notes of Py for informatics 2
- Notes of Py for informatics
- Notes of Py for informatics 3
- Notes of Py for informatics 4
- Notes for caffe (2) py-caffe的重要接口备忘
- Notes for OpenGL - 2
- Notes of the development for apple(todo)
- Notes of configuration TortoiseGit for TFS Online
- notes of c++ primer (2)
- Notes 2 of 《Beauty of Mathematics》
- Paper Notes: Empirical Comparison of Algorithms for Network Community Detection
- Notes of “Fast Bilateral-Space Stereo for Synthetic Defocus”
- Notes of Flash Builder 4 Bible (2)
- Notes of Python Learning 2/10/2016
- Study notes for Support Vector Machines (2)
- Informatics Training
- Notes of Shell command
- Some Notes of QT4
- java8中将非线程安全类采用lamda表达式转换成线程安全类的方式
- 程序运行产生SIGABRT信号的原因
- java设计模式——Adapter模式
- Sqoop1 与 Sqoop2
- 关于Intellij Idea中git的技巧
- Notes of Py for informatics 2
- I,P,B帧和PTS,DTS的关系
- transient
- Redis数据类型及使用场景
- 安卓微信浏览器location.reload()刷新无效
- 汇编学习笔记(一)
- 学习笔记之低功耗蓝牙开发
- 读取文件方法大全
- poj1493