Python输入,输出,存储器和异常

Python输入,输出,存储器和异常

输入/输出

程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用input和print。input(xxx)输入xxx, 然后读取用户的输入并返回。

<code>In [1]: input()
1
Out[1]: '1'
/<code>

文件输入/输出

可以使用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 文件尾 写入位置 标记位置 标记位置 写入时默认跳至文件尾

补充个例子吧:

<code>

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
/<code>

存储器

存储器,大家应该不知道。python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过它是用c写的,要比pickle速度快(大约快1000倍)。

<code>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"]
/<code>

异常

当程序中出现某些异常的状况时,异常就发生了。

python中可以使用try ... except处理。

<code>try:
print (1/0)
except ZeroDivisionError as e:
print(e)
except:
print( "error or exception occurred.")

#integer division or modulo by zero
/<code>


分享到:


相關文章: