Python机器学习编程与实战
上QQ阅读APP看书,第一时间看更新

1.2.4 Python I/O

计算机程序用于执行任务,是满足人类需求的工具。有信息的输入,程序才能接收指令,理解需求;有信息的输出,运行结果才能被反馈给用户。在编程中,信息输入操作称为Input,输出操作称为Output,信息输入与输出统称为Input/Output,简写为I/O。

相比其他语言,Python中的I/O操作更加简单方便,通过简单的指令就可以实现基本的输入和输出。此外,I/O并不仅仅指信息输入和输出,还包括文件的输入和输出。

1.input与print

(1)input

input函数用于交互式的信息输入,相当于一个容器,用户从键盘上输入的信息先存放在容器中,再被变量引用,可以接纳多种数据类型,包括number、str等基础变量及list、tuple、dict、set等高级变量。使用input函数时,可以在括号内添加str以提示输入。需要注意的是,Python 3中的input函数将所有接收的数据类型都默认为str。要得到需要的数据类型,需要强制转换输入数据的类型。

(2)print

print函数可以实现多样化的输出操作,使用print函数进行输出操作时,可以在函数的括号中插入str以向屏幕上输出指定的文字,如输出“hello,world!”的程序;要输出被赋值的变量,在print函数的括号中插入变量名即可。

print函数也可以接收多个str,需要用逗号隔开,print函数会依次打印每个str,遇到逗号时则输出一个空格,因此输出的str是拼起来的。print函数也可以自动计算结果,如运行“print(number1+number2)”语句时,解释器会自动计算出相加的结果并输出。

2.格式化输出

格式化输出主要是为了方便修改语句,减少编写代码的工作量,并且包含自动取位、转换进制等功能。Python中的格式化输出方法有两种,即“%+格式符”的方法和format函数的方法。

“%+格式符”的方法是一种较早的格式化输出方法,使用方式是在百分号(%)后加上相应的格式符以占位,再进行替换和输出。Python中的格式符可分别用于str、整型数据和float的输出。Python中的格式符如表1-23所示。

表1-23 Python中的格式符

format函数是更为强大的格式化输出工具,format函数收集位置参数和关键字参数的任意集合,使用它们的值替换str中的占位符。该方法使用花括号({})作为特殊字符代替%,{}中可以不带参数、带数字编号或带关键字编号进行占位和替换,前两种属于位置替换方法,后一种属于关键字替换方法。

format函数也支持格式符,其格式符如表1-24所示。

表1-24 format函数的格式符

3.文件I/O

(1)open

内置函数open的作用是打开一个文件,创建一个file对象以进行调用。在打开文件的基础上,才可以实现后续的文件读写操作。open函数的基本语法格式如下。

open(filename, mode) 

open函数常用的参数及说明如表1-25所示。

表1-25 open函数常用的参数及说明

mode参数决定了打开文件的模式,这个参数是非强制的,默认的文件访问模式为只读(r),文件访问模式及说明如表1-26所示。

表1-26 文件访问模式及说明

(2)read

在Python中,读取文件的内容需要先以只读的模式打开一个文件,可以用open函数传入文件名和模式标识符,再使用read函数读取文件中的内容。read函数可以从打开的文件中一次性读取全部内容,内容被读取到内存中并以一个str对象表示。read函数的基本语法格式如下。

f = open(filename, mode) 
f.read(size) 

read函数常用的参数及说明如表1-27所示。

表1-27 read函数常用的参数及说明

在表1-27中,size表示要从文件中读取的字符数,该方法从文件的开头开始读入,每调用一次就读取size个字符的内容。如果没有传入size,则程序会尝试尽可能多地读取内容,一直到文件的末尾。

(3)write

在Python中,写入文件和读出文件的操作方式是相似的,先调用open函数并传入标识符'w'或'wb',再使用write函数进行写入。write函数的基本语法格式如下。

f = open(filename, mode) 
f.write('str') 

write函数常用的参数及说明如表1-28所示。

表1-28 write函数常用的参数及说明

write函数可将任何str写入到打开的文件中,需要注意,Python中的str可以是二进制数据,而不限于文字。若要写入str以外的内容,则需要先将要写入的内容转换成str。

(4)close

close函数可以刷新缓存中任何还未写入的信息并关闭文件,关闭之后的文件便不能再进行写入。使用完文件后应该关闭,关闭文件的本质是使文件指针与文件脱离,关闭后不再能通过该指针对原来与其联系的文件进行操作。如果文件使用完后不关闭,则文件对象会一直占用操作系统的资源。此外,操作系统同一时间能打开的文件数量是有限的,写入文件时,数据会占用操作系统的内存,待计算机空闲时再慢慢写入,不调用close函数的后果是可能只写一部分信息到磁盘中,其他信息会丢失。

close函数的基本语法格式如下。

fileObject.close() 

close函数常用的参数及说明如表1-29所示。

表1-29 close函数常用的参数及说明

Python程序代码需要在末尾使用close函数关闭文件,以保证信息的完整。