文件是存储在外部介质上的一组相关信息的集合。例如:程序文件是程序代码的集合,数据文件是数据的集合。每一个文件都有一个名字,称为文件名。操作系统把每一个与主机相连的输入/输出设备都作为文件来管理,称为标准输入/输出文件。例如:键盘是标准输入文件,显示器和打印机是标准输出文件。
python文件可以分为文本文件和二进制文件。文本文件的每一个字节代表一个ASCLL代码,即一个字符。二进制文件是把数据按其在内存中的存储形式原样输出到磁盘上存放。例如:图形图像文件、音频视频文件、可执行文件等都是常见的二进制文件。文本文件便于对字符进行逐个处理,也便于输出字符,但一般占用存储空间较多,而且要花费时间转换(二进制形式与ASCLL码间的转换)。用二进制形式输出数值,可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。一般中间结果数据需要暂时保存在外存冲且以后又需要读入到内存的,常用二进制文件保存。
1.2文件操作无论是文本文件还是二进制文件,其操作过程是相同的,即首先打开文件并创建文件对象,然后通过该文件对象对文件内容进行读/写操作,最后关闭文件。
文件的读(read)操作就是从文件中取出数据,在输入到计算器内存储器。
文件的写(write)操作是向文件写入数据,即将内存数据输出到磁盘文件。
读/写操作是相对于磁盘文件而言的,而输入/输出操作是相对于内存储器而言的。文件的读/写就是数据的输入/输出过程。“读”与“输入”、“写”与“输出”指的是同一过程。
二、文件的打开与关闭在对文件进行读/写操作之前,首先要打开文件,操作结束之后应该关闭文件。python提供了文件对象,通过open()函数可以按指定方式打开指定文件并创建文件对象。
2.1打开文件打开文件是指在程序和操作系统之间建立起联系,程序把所要操作文件的一些信息通知给操作系统。这些信息中除包括文件名外,还要指出读/写方式及读/写位置。
如果是读操作,则需要先确认此文件是否已存在;如果是写操作,则检查原来是否有同名文件,如有则先将该文件删除,然后新建一个文件,并将读/写位置设定于文件开头,准备写入数据。
open()函数:要读取或写入文件,必须使用内置的open()函数来打开它。该函数创建一个文件对象,可以使用文件对象来完成各种文件操作。该函数一般调用格式为:
文件对象=open(文件说明符[,打开方式][,缓冲区])
文件说明符指定打开的文件名,可以包含盘符、路径和文件名,它是一个字符串。 注意:文件路径中的“"应写为"\",打开方式指定打开文件后的操作方式,该参数是字符串,必须小写。文件操作方式是可选参数,默认为r(只读操作)。文件操作方式用具有特定含义的符号表示:
- “r”方式打开文件时,只能从文件向内存输入数据,而不能从内存向该文件写数据。该方式打开的文件应该已经存在,不能用该方式打开一个并不存在的文件,否则出现错误。
- “w”方式打开文件时,只能向该文件写数据,如果原来的文件不存在,则打开时建立一个以指定文件名命名的文件,如果文件已经存在,则打开时将文件删空,然后重新建立一个新文件。
- “a”方式,保留原文件中已有的数据,向一个已经存在的文件的尾部添加新数据。如果文件不存在,则创建并写入新的文件。打开文件时,文件的位置指针在文件末尾。
- “r+”、“w+”、“a+”方式打开的文件可以写入和读取数据。用“r+”方式打开文件时,该文件应该已经存在,这样才能对文件进行读/写操作;用“w+”方式打开文件时,如果文件存在,则覆盖现有的文件,如果文件不存在,则创建新的文件并可进行读取和写入操作;用“a+”方式打开的文件,则保留文件中原有的数据,文件的位置指针在文件的末尾,此时,可以进行追加或读取文件操作。
缓冲区设置表示文件操作是否使用缓冲存储方式,如果缓冲区参数被设置为0,则表示不使用缓冲存储,如果设置为1,则表示使用。如果缓冲区参数为大于1的整数,则使用缓冲存储,并且该参数指定了缓冲区的大小。如果缓冲区参数指定为-1,则使用缓冲存储,并且使用系统默认缓冲区的大小,这也是缓冲区参数的默认设置。
文件对象属性:文件一旦被打开,通过文件对象的属性可以得到有关该文件的各种信息。文件属性的引用方法为:
文件对象名.属性名
例如:
fo=open("f.txt","wb")
print("Name of the file:",fo.name)
print("Closed or not:",fo.closed)
print("Opening mode:",fo.mode)
运行结果为:
文件创建到了项目所在路径。
文件对象方法:
实例:
fo=open("f.txt","w")
fo.write("hello world!")
fo.truncate(5)
fo.close()
运行的文件结果为:
2.2关闭文件文件使用完毕后,应当关闭,这意味着释放文件对象可以供别的程序使用,同时也可以避免文件中的数据丢失。用文件对象的close()方法关闭文件,其调用格式为:
文件对象.close()
close()方法用于关闭已打开的文件,将缓冲区中尚未存盘的数据写入磁盘,并释放文件对象。此后,如果再想使用刚才的文件,则必须重新打开。



