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)