输入/输出
程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用input和print。input(xxx)输入xxx, 然后读取用户的输入并返回。
In [1]: input()
1
Out[1]: '1'
文件输入/输出
可以使用file类打开一个文件,使用file的read、readline和write来恰当的读写文件。对文件读写能力取决于打开文件时使用的模式, 常用模式
- 读模式("r")
- 写模式("w")
- 追加模式("a")
文件操作之后需要调用close方法来关闭文件。如果用with open就不用slose了。
还有r+,w+,a+
- r:仅仅表示读入
- r+:既可以读取还可以写入
- w: 仅仅表示写入
- w+:既可以读取还可以写入
但r+与w+不同的是,不会把原先存在txt中的东西清空,下面是他们的对比,反正尽量用a+,基本没什么错报出来。
描述 | r+ | w+ | a+ |
---|---|---|---|
当前文件不存在时文件 | 抛出异常 | 创建文件 | 创建文件 |
打开后原文件内容 | 保留 | 清空 | 保留 |
初始位置 | 0 | 0 | 文件尾 |
写入位置 | 标记位置 | 标记位置 | 写入时默认跳至文件尾 |
补充个例子吧:
test = '''\
This is a program about file I/O.
Author: Runsen
Date: 2020/3/31
'''
f = open("test.txt", "w")
f.write(test)
f.close()
f = open("test.txt") #默认r
while True:
line = f.readline()
if len(line) == 0:
break
print(line)
f.close()
######
This is a program about file I/O.
Author: Runsen
Date: 2020/3/31
存储器
存储器,大家应该不知道。python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过它是用c写的,要比pickle速度快(大约快1000倍)。
import pickle
datafile = "data.data"
mylist = ["Runsen", "is", "20"]
f = open("test.txt", "wb+")
pickle.dump(mylist, f)
f.close()
del mylist
f = open(datafile,'rb+')
mylist = pickle.load(f)
print(mylist)
#["Runsen", "is", "20"]
异常
当程序中出现某些异常的状况时,异常就发生了。
python中可以使用try ... except
处理。
try:
print (1/0)
except ZeroDivisionError as e:
print(e)
except:
print( "error or exception occurred.")
#integer division or modulo by zero
网友评论