1.文件打开:open()

f = open(file,[,mode],[,encoding],[,buffering])

f:open()返回的文件对象;

file:要打开的文件(绝对路径+文件名);

mode:指定模式(只读:r,写入:w,追加:a,等),默认只读;

encoding:指定文件编码(utf-8、gbk、gb2312、gb18030、ANSI、utf-8-sig)

buffering:若设置为0,不会有寄存;
               设置为1,访问文件时会寄存行;
               设置为大于1的数,表明是寄存区的缓冲大小;
               设置为负数时,则缓存区的大小为系统默认。

mode制定模式描述:
r :    只读,指针在文本最前(0,0),只能进行读,不可写,这是默认模式
rb:     以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+:    打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:  以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w :   写,指针在文本最前(0,0),如果没有目标文本,会新建一个空目标文本;如果有,会清除目标文本中的所有内容,相当
          于新建一个空的目标文本后替换原文本
wb:  以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:  打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:    追加,如果有目标文本,指针会跳到文本的最后;如果没有找到,同w模式会新建一个空的文本。``
ab:  以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写
         入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:  打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存
          在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文
          件用于读写。

2.文件属性


f=open("eal.txt", 'r', encoding='utf-8')

f.name
Out[1]: 'E:\\eal.txt'

f.mode
Out[2]: 'r'

f.closed
Out[3]: False

f.close()

f.closed
Out[4]: True


python open 文件名空格问题 python open文件编码_读取文件

转存失败重新上传取消

python open 文件名空格问题 python open文件编码_read_02

 3.文件的读写--read()/write()

f.read(size):  从文件中读取指定的字节数,若未指定,读取所有。size输入字节数;
f.readline():  读取整行,包括"\n";
f.readlines():读取所有行,并返回列表;
f.write():       将字符串写入文件,并返回字符串长度;
f.writelines():向文件写入一个序列字符串列表,如果需要换行,需要自己假如换行符
f.flush():       刷新文件缓存,直接把内部缓冲的数据写入文件。

 4.文件光标定位

函数名

描述

f.seek(offset[,from])

设置文件的当前位置,即指针位置,from=0时,文件开头位置,from=1当前位置,from=2文件末尾

f.tell()

返回文件的当前位置,即指针位置

5.文件的关闭--close()

 文件打开后都需要关闭,以免浪费内存空间。

或者使用with as语法,自动关闭文件。

#方法一
f=open("eal.txt", 'r', encoding='utf-8')
f.close()

#方法二
with open("eal.txt", 'r', encoding='utf-8') as f:
   ll = [line for line in f.readlines()]