申明: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自行处理。
标签:文件,参数,mode,file,基本操作,close,open,第四章 From: https://www.cnblogs.com/mmking/p/16832909.html