简明python教程 --C++程序员的视角(六):输入输出IO
2016-03-15 19:19
681 查看
程序与用户交互
你会从用户那里得到输入,然后打印一些结果。我们可以分别使用
raw_input,input和
对于输出,你也可以使用多种多样的
str(字符串)类。例如,你能够使用
rjust方法来得到一个按一定宽度右对齐的字符串。利用
help(str)获得更多详情。
另一个常用的输入/输出类型是处理文件。创建、读和写文件的能力是许多程序所必需的,我们将会在这章探索如何实现这些功能。
文件
你可以通过创建一个file类的对象来打开一个文件,分别使用
file类的
read、
readline或
write方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用
close方法来告诉Python我们完成了对文件的使用。
首先,我们通过指明我们希望打开的文件和模式来创建一个
file类的实例。模式可以为读模式(
'r')、写模式(
'w')或追加模式(
'a')。事实上还有多得多的模式可以使用,你可以使用
help(file)来了解它们的详情。
我们首先用写模式打开文件,然后使用
file类的
write方法来写文件,最后我们用
close关闭这个文件。
接下来,我们再一次打开同一个文件来读文件。如果我们没有指定模式,读模式会作为默认的模式。在一个循环中,我们使用
readline方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个 空的字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。
注意,因为从文件读到的内容已经以换行符结尾,所以我们在
close关闭这个文件。
现在,来看一下
poem.txt文件的内容来验证程序确实工作正常了。
储存器
Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。
还有另一个模块称为
cPickle,它的功能和
pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比
pickle快1000倍)。
你可以使用它们中的任一个,而我们在这里将使用
cPickle模块。记住,我们把这两个模块都简称为
pickle模块。
如下主要是用法的演示,其中文件的打开的写法应该如
try:
with open(shoplistfile,'w') as f:
p.dump(shoplist,f)
except IOEError as ioerr:
print "File error in (write to the file): " + str(ioerr)
首先,请注意我们使用了
import..as语法。这是一种便利方法,以便于我们可以使用更短的模块名称。在这个例子中,它还让我们能够通过简单地改变一行就切换到另一个模块(
cPickle或者
pickle)!在程序的其余部分的时候,我们简单地把这个模块称为
p。
为了在文件里储存一个对象,首先以写模式打开一个
file对象,然后调用储存器模块的
dump函数,把对象储存到打开的文件中。这个过程称为 储存。
接下来,我们使用
pickle模块的
load函数的返回来取回对象。这个过程称为 取储存 。
---恢复内容结束---
在很多时候,你会想要让你的程序与用户(可能是你自己)交互。
你会从用户那里得到输入,然后打印一些结果。我们可以分别使用
raw_input和
对于输出,你也可以使用多种多样的
str(字符串)类。例如,你能够使用
rjust方法来得到一个按一定宽度右对齐的字符串。利用
help(str)获得更多详情。
另一个常用的输入/输出类型是处理文件。创建、读和写文件的能力是许多程序所必需的,我们将会在这章探索如何实现这些功能。
文件
你可以通过创建一个file类的对象来打开一个文件,分别使用
file类的
read、
readline或
write方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用
close方法来告诉Python我们完成了对文件的使用。
首先,我们通过指明我们希望打开的文件和模式来创建一个
file类的实例。模式可以为读模式(
'r')、写模式(
'w')或追加模式(
'a')。事实上还有多得多的模式可以使用,你可以使用
help(file)来了解它们的详情。
我们首先用写模式打开文件,然后使用
file类的
write方法来写文件,最后我们用
close关闭这个文件。
接下来,我们再一次打开同一个文件来读文件。如果我们没有指定模式,读模式会作为默认的模式。在一个循环中,我们使用
readline方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个 空的字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。
注意,因为从文件读到的内容已经以换行符结尾,所以我们在
close关闭这个文件。
现在,来看一下
poem.txt文件的内容来验证程序确实工作正常了。
储存器
Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。
还有另一个模块称为
cPickle,它的功能和
pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比
pickle快1000倍)。
你可以使用它们中的任一个,而我们在这里将使用
cPickle模块。记住,我们把这两个模块都简称为
pickle模块。
如下主要是用法的演示,其中文件的打开的写法应该如
try:
with open(shoplistfile,'w') as f:
p.dump(shoplist,f)
except IOEError as ioerr:
print "File error in (write to the file): " + str(ioerr)
首先,请注意我们使用了
import..as语法。这是一种便利方法,以便于我们可以使用更短的模块名称。在这个例子中,它还让我们能够通过简单地改变一行就切换到另一个模块(
cPickle或者
pickle)!在程序的其余部分的时候,我们简单地把这个模块称为
p。
为了在文件里储存一个对象,首先以写模式打开一个
file对象,然后调用储存器模块的
dump函数,把对象储存到打开的文件中。这个过程称为 储存。
接下来,我们使用
pickle模块的
load函数的返回来取回对象。这个过程称为 取储存 。
from: http://www.cnblogs.com/wei-li/archive/2012/03/26/2417311.html
相关文章推荐
- 简明python教程 --C++程序员的视角(五):面向对象的编程
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
- 简明python教程 --C++程序员的视角(三):模块
- 简明python教程 --C++程序员的视角(二):函数及作用域
- 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流
- C++对C语言的非面向对象特性扩充(3)
- 蓝桥杯 往届试题(C++B组)
- C++ vector多维数组初始化及清零
- C++的发展,特点和源程序构成
- 第一次c++上级报告-2
- C++之命名空间(End Chapter)
- Effective C++第三遍
- C++运算符重载:怎样定义函数才“符合常理”
- c/c++内存机制(一)(转)
- C++中关于函数的引用
- c++ 内存五区理解
- iOSDay08之C语言内存管理
- C++:为什么有容器与迭代器
- C语言找出数组中的特定元素的算法解析
- 《C++ Primer》第四版 第13章 复制控制