一、控制台输入/输出
input()
相当于:
print(‘提示内容’ end='')
sys.stdin.readline()[:-1] # -1 to discard the '\n' in input stream
print()
相当于:
sys.stdout.write()
可以使用 str.format() 函数来格式化输出值
可以使用 repr() 或 str() 函数将输出的值转成字符串
二、文件 I/O
1. 打开文件
使用 open() 函数打开文件并返回一个 file 文件对象。
语法:
open(name[, mode[, buffering]])
打开模式:
基本模式:
r:只读
w:只写
a:追加
rb/wb/ab:表示以二进制格式操作文件
r+:读写,从头覆盖写入,不清空文件内容,文件不存在时报错
w+:读写,清空文件,然后写入,文件不存在时创建该文件
with open('foo.txt','w+') as f:
for i in range(1,10):
f.write('line {0}: Python 是一门非常好的语言。\n'.format(i))
# f.write('line {0}: Python 语言。\n'.format(i))
foo.txt: 文件原有内容被清除,并从文件头开始写入。
line 1: Python 是一门非常好的语言。
line 2: Python 是一门非常好的语言。
line 3: Python 是一门非常好的语言。
line 4: Python 是一门非常好的语言。
line 5: Python 是一门非常好的语言。
line 6: Python 是一门非常好的语言。
line 7: Python 是一门非常好的语言。
line 8: Python 是一门非常好的语言。
line 9: Python 是一门非常好的语言。
r+
with open('foo.txt','r+') as f:
for i in range(1,10):
# f.write('line {0}: Python 是一门非常好的语言。\n'.format(i))
f.write('line {0}: Python 语言。\n'.format(i))
foo.txt: 不清空文件原有内容,并从文件头开始覆盖写入。
line 1: Python 语言。
line 2: Python 语言。
line 3: Python 语言。
line 4: Python 语言。
line 5: Python 语言。
line 6: Python 语言。
line 7: Python 语言。
line 8: Python 语言。
line 9: Python 语言。
浅:玫挠镅浴�
line 7: Python 是一门非常好的语言。
line 8: Python 是一门非常好的语言。
line 9: Python 是一门非常好的语言。
2. file 对象方法
file.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)
file.readline() 返回一行
file.readlines([size]) 返回包含size行的列表,size 未指定则返回全部行
for line in f: print line #通过迭代器访问
f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.
f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
f.seek(偏移量,[起始位置]) 用来移动文件指针.
偏移量:单位:比特,可正可负
起始位置:0-文件头,默认值;1-当前位置;2-文件尾
f.close() 关闭文件
3. pickle 模块
通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。
通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
语法:
pickle.dump(obj, file, [,protocol])
x = pickle.load(file)
应用示例:
保存网站爬虫数据到文件:
from urllib import request
response=request.urlopen('http://www.baidu.com/')
with open('baidu.txt','w') as f:
f.write(str(response.read()))