输入和输出 |
这里讨论与输入和输出有关的一些问题。
输出格式print 是 Python 的一个标准函数,主要用于给程序使用者输出信息,产生的信息默认显示在交互窗口里。Python 称之为 "标准输出文件",print 把输出送到这里。简单使用 print,它逐个输出实参表达式的值,两个输出之间用空格分隔。 实际上 print 还有几个特殊参数,它们都有默认值,如需改变,可以用关键字实参形式提供:
由于输出格式控制是很具体的问题,这里不打算介绍。有关情况可以参考教程 7.1 节的讨论,以及标准库手册 4.7 节对字符串类型和 6.1 节对格式化串的讨论。 文件输入和输出大量数据一定保存在操作系统管理下的文件里,产生的成批结果也需要存入文件。Python 语言提供了针对文件的输入输出功能。下面介绍 Python 中与文件有关的基本功能。要使用一个文件,需要先打开;用完后需要关闭。打开文件后就可以使用了。 Python 用标准函数 open 打开文件,函数 open 完成时将建立一个与指定文件关联的文件对象。打开文件时要说明文件的使用方式。假定要打开的文件名字是 file1.dat,准备读入这个文件的内容,就应该用读模式(用字符串 'r' 表示)打开文件,写法是: inf = open('file1.dat', 'r')语句执行后变量 inf 的值就是 open 建立的文件对象,它关联于文件 file1.dat,可以通过这个对象使用该文件。 如果希望打开文件 file2.out,用于保存程序结果,应该用写模式(用字符串 'w' 表示)打开文件,写法是: outf = open('file2.out', 'w')上面两种打开模式都假定输入或输出的是文本文件,这种文件的内容为一个字符序列(可能很长)。其中可能包括各种可见字符、空格、换行符和一些特殊字符。 Python 标准库为输入和输出提供了很丰富的功能,参看标准库手册 16.2 节有关 io 库的介绍。 从文件输入对于打开的读文件,可以执行输入操作。一个常见操作是读入文件内容:inf = open('file1.dat', 'r') data = inf.read() data2 = inf.read()第一个操作把文件 file1.dat 的所有内容读入,做成一个(可能很长的)字符串赋给标量 data,执行后 data 的值就是包含被读入文件里所保存的文本的所有字符(包括其中出现的特殊字符)的字符串。如果文件已经读完,继续读就会得到一个空串,因此 data2 的值将为一个空串。 另一常见操作是按行读入,例如 inf = open('file2.dat', 'r') line1 = inf.readline() line2 = inf.readline()(假定打开文件后没做前面写的 read() 操作)这两个语句之后变量 line1 和 line2 的值将是文件里第一行和第二行的内容。如果文件里的一行最后有换行字符,这个字符将成为 readline() 返回的字符串里最后一个字符。(注意:一个文件里的最后一行可能没有最后的换行)。 如果 readline() 读到的是一个空行,它将返回只包含一个换行字符的字符串,因为这就是该行的内容。如果调用时文件已读完,readline() 返回一个空字符串(可用于判断文件是否已经读完)。 打开的文本文件对象也是一种迭代器对象,可以直接作为 for 语句循环变量的数据源。人们经常用下面形式处理文本文件输入: for line in inf : ... line ...这相当于 while TRUE : line = inf.readline() if line = '': break ... line ...显然前一写法既简单又清晰。 如果想简单地输入一个文件的各行并建立一个以这些行作为元素的list,下面两种形式都行: lineList = list(inf) lineList = inf.readlines()readlines(...) 返回以所有读入的行为元素的表。 向文件输出基本的文本文件输出操作是 write,其参数应该是一个字符串,这个函数返回实际输出的字符个数。例如>>> f.write('A test output with dot and newline.\n') 36要输出其他类型的数据,应首先用 str() 将其转换为字符串。 文件还有其他打开模式,用内置函数 open 的参数的形式描述,有关情况见标准库手册第2节 "内置函数" 中有关 open 的说明。 以文本方式打开得到的文件对象支持的所有操作见标准库手册 16.2.3.1 节 io.IOBase 和 io.RawIOBase,后者是 open 返回的文件对象的类型。 有关 Python 内置输入输出(input/output,简称 I/O)功能的更全面介绍见标准库手册 16.2 节。 有关文件的详细信息open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) |
本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。 |