您的位置:首页 > 编程语言 > C语言/C++

简明python教程 --C++程序员的视角(六):输入输出IO

2016-03-15 19:19 681 查看

程序与用户交互

你会从用户那里得到输入,然后打印一些结果。我们可以分别使用
raw_input,input
print
语句来完成这些功能。raw_input会返回字符串,而input会返回字面值,相当于eval(raw_input([promt])).

对于输出,你也可以使用多种多样的
str
(字符串)类。例如,你能够使用
rjust
方法来得到一个按一定宽度右对齐的字符串。利用
help(str)
获得更多详情。

另一个常用的输入/输出类型是处理文件。创建、读和写文件的能力是许多程序所必需的,我们将会在这章探索如何实现这些功能。

文件

你可以通过创建一个
file
类的对象来打开一个文件,分别使用
file
类的
read
readline
write
方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用
close
方法来告诉Python我们完成了对文件的使用。





首先,我们通过指明我们希望打开的文件和模式来创建一个
file
类的实例。模式可以为读模式(
'r'
)、写模式(
'w'
)或追加模式(
'a'
)。事实上还有多得多的模式可以使用,你可以使用
help(file)
来了解它们的详情。

我们首先用写模式打开文件,然后使用
file
类的
write
方法来写文件,最后我们用
close
关闭这个文件。

接下来,我们再一次打开同一个文件来读文件。如果我们没有指定模式,读模式会作为默认的模式。在一个循环中,我们使用
readline
方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个 空的字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。

注意,因为从文件读到的内容已经以换行符结尾,所以我们在
print
语句上使用逗号来消除自动换行。最后,我们用
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
print
语句来完成这些功能。

对于输出,你也可以使用多种多样的
str
(字符串)类。例如,你能够使用
rjust
方法来得到一个按一定宽度右对齐的字符串。利用
help(str)
获得更多详情。

另一个常用的输入/输出类型是处理文件。创建、读和写文件的能力是许多程序所必需的,我们将会在这章探索如何实现这些功能。

文件

你可以通过创建一个
file
类的对象来打开一个文件,分别使用
file
类的
read
readline
write
方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用
close
方法来告诉Python我们完成了对文件的使用。





首先,我们通过指明我们希望打开的文件和模式来创建一个
file
类的实例。模式可以为读模式(
'r'
)、写模式(
'w'
)或追加模式(
'a'
)。事实上还有多得多的模式可以使用,你可以使用
help(file)
来了解它们的详情。

我们首先用写模式打开文件,然后使用
file
类的
write
方法来写文件,最后我们用
close
关闭这个文件。

接下来,我们再一次打开同一个文件来读文件。如果我们没有指定模式,读模式会作为默认的模式。在一个循环中,我们使用
readline
方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个 空的字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。

注意,因为从文件读到的内容已经以换行符结尾,所以我们在
print
语句上使用逗号来消除自动换行。最后,我们用
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: