ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 第12章 输入/输出 **目录表** + 文件 + 使用文件 + 储存器 + 储存与取储存 + 概括 在很多时候,你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入,然后打印一些结果。我们可以分别使用`raw_input`和`print`语句来完成这些功能。对于输出,你也可以使用多种多样的`str`(字符串)类。例如,你能够使用`rjust`方法来得到一个按一定宽度右对齐的字符串。利用`help(str)`获得更多详情。 另一个常用的输入/输出类型是处理文件。创建、读和写文件的能力是许多程序所必需的,我们将会在这章探索如何实现这些功能。 你可以通过创建一个`file`类的对象来打开一个文件,分别使用`file`类的`read`、`readline`或`write`方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用`close`方法来告诉Python我们完成了对文件的使用。 ``` #!/usr/bin/python # Filename: using_file.py poem = '''\ Programming is fun When the work is done if you wanna make your work also fun:         use Python! ''' f = file('poem.txt', 'w') # open for 'w'riting f.write(poem) # write text to file f.close() # close the file f = file('poem.txt') # if no mode is specified, 'r'ead mode is assumed by default while True:     line = f.readline()     if len(line) == 0: # Zero length indicates EOF         break     print line,     # Notice comma to avoid automatic newline added by Python f.close() # close the file ``` (源文件:[code/using_file.py](code/using_file.py)) ## 输出 ``` $ python using_file.py Programming is fun When the work is done if you wanna make your work also fun:         use Python! ``` ## 它如何工作 首先,我们通过指明我们希望打开的文件和模式来创建一个`file`类的实例。模式可以为读模式(`'r'`)、写模式(`'w'`)或追加模式(`'a'`)。事实上还有多得多的模式可以使用,你可以使用`help(file)`来了解它们的详情。 我们首先用写模式打开文件,然后使用`file`类的`write`方法来写文件,最后我们用`close`关闭这个文件。 接下来,我们再一次打开同一个文件来读文件。如果我们没有指定模式,读模式会作为默认的模式。在一个循环中,我们使用`readline`方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个 空的 字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。 注意,因为从文件读到的内容已经以换行符结尾,所以我们在`print`语句上使用逗号来消除自动换行。最后,我们用`close`关闭这个文件。 现在,来看一下`poem.txt`文件的内容来验证程序确实工作正常了。