第四章 文件基本操作

申明:file是python的关键词,不能用于变量名,这里仅为示例,便于说明变量指向打开的文件;

文件操作:

file = open(filename[,mode[,buffering]])

 1.open()函数第一个参数,即文件名是必须的,通常该文件名还需要带文件路径;

例如,数据文件与当前程序在同一目录下,则文件名无须包含路径,否则必须要带上相对路径或绝对路径;

在windows下的绝对路径示例:'e:\\pthw\\hfpython\\ex\\Man.txt' ;

 2.mode参数为可选,默认为'r',即只读;

mode模式参数常用值'r':只读;

补充:'x'模式:尝试以独占的方式打开文件,若文件已经打开,则抛出异常;若文件不存在,则创建一个新文件。

 

说明:

以'w'或'w+'方式打开文件,首先会将文件内容清空;'+'是增加“读写”功能,但不影响'w'的属性;

以'r'或'r+'方式打开文件,从开头开始读;

'a','a+',追加方式,文件指针自动指向文件末尾;

 

3.file.write(contents)

写入操作,仅仅是在内存中写入,并没有将内容写进硬盘文件;因此,为了确保内容成功保存到硬盘文件,请务必确保有写入内容的文件要有file.close()

(当然,基于文件安全性和程序严谨要求,所有主动打开的文件,应主动关闭);

 

4.file.seek(offset[,whence])

参数offset -- 开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。

whence:可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。

返回值:如果操作成功,则返回新的文件位置,如果操作失败,则函数返回 -1。

 file.seek()方法,结合file.read() 、file.lineread()、file.readlines()和 file.write() 使用;

file.read([size])---->从当前文件指针顺序读取指定字节的内容,若不输入参数或参数为负,则读取从当前文件指针之后全部内容;

该动作之后,文件指针会停留在被读取的最后一个字节位置,若需要调整指针,就需要用到file.seek()函数;

 

5.file.close()

file.close 需要与file.open()配合使用。

file.close()不需要任何参数,也不需要任何返回值。

但是,在程序设计中,若存在file.open()失败时,再去执行file.close(),会抛出一个异常,导致程序崩溃;

因此,为避免程序崩溃,通常会在执行file.close()之前,再做一次确认,即:

if 'file' in local(): #file 是file = opne('filename') 的变量名。

file.close()

 

6.with

with open('fine_name','mode') as file_variable:

print('context',file = file_variable)

#file_variable.write('context')

使用上述结构,由python自行管理文件的colse(),无论文件open()成功与否,python自行处理。

posted @ 2022-10-27 17:02  青萍微澜  阅读(91)  评论(0)    收藏  举报