Python 教程阅读笔记(六):输入和输出

输出格式调整

str.format()  括号里面的内容会被format里传入的对象来取代

>>>print('{1} and {0}'.format('spam', 'eggs'))

eggs and spam

括号里也可用关键字参数

>>> print('This {food} is {adjective}.'.format(

... food='spam', adjective='absolutely horrible'))

This spam is absolutely horrible.

 

另外两种format的方法:

>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
>>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '
          'Dcab: {0[Dcab]:d}'.format(table))
Jack: 4098; Sjoerd: 4127; Dcab: 8637678

 

>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
>>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))
Jack: 4098; Sjoerd: 4127; Dcab: 8637678

 

以上方法也可以组合

在括号里也可设置想要的格式,!a表示ASCII ,!s表示 str() ,!r表示repr()

: 后面若跟的是整数,表示最小宽度

 

str()函数返回数值的可读表示。repr()生成解释器的可读表示。 repr 会增加字符串引号和反斜杠

对于数或像列表和字典这种结构,两个函数有相同的表征,对于字符串,两者是不一样的。

 

str.rjust()以指定带宽右调整字符串的域,不够时在左边填充空格。

相似的还有str.ljust()和str.center()

 

str.zfill() 若不足位左填充0

 

老式的格式化符号为%,同sprintf类似

 

open(filename, mode)

r只读 w只写 a追加写 r+可读写  b二进制 r是默认的

文本模式时,默认\r方式读 写时根据平台特性会加上\n

f.read(size)

不指定size,读全部内容,下次读返回’’

f.readline()

返回一行内容,返回值后面附加'\n’,最后一行不加

f.readlines()

返回一个包含所有行的列表

另一种读文件的方式为

for line in f:

... print(line, end='')

 

f.write(string)             写字符串内容到文件,返回写的字符

f.tell()                    给出文件对象当前位置

f.seek(offset, from_what)   from_what  0开始 1当前位置  2结尾

文本文件只允许从头开始seek

f.close()

推荐使用with关键字来处理文件对象,这样能在结束时合适的关闭文件,及时出现异常。从而避免了写复杂的try finally语句

>>> with open('/tmp/workfile', 'r') as f:

... read_data = f.read()

 

pickle模块可以将绝大多数对象转化为字符串表征,完成永久化存储

pickle.dump(x, f) 

x = pickle.load(f)

posted @ 2012-05-15 21:42  Orcus  阅读(299)  评论(0编辑  收藏  举报