python--文件基本读写(十七)
# 文件读写需要方法之open
'''
open()语法
open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
open函数有很多的参数,常用的是file,mode和encoding
1、file文件位置,需要加引号
2、mode文件打开模式,见下面3
3、buffering的可取值有0,1,>1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小;
4、encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;
5、errors的取值一般有strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,
程序会忽略而过,继续执行下面的程序。
6、newline可以取的值有None, \n, \r, ”, ‘\r\n',用于区分换行符,但是这个参数只对文本模式有效;
7、closefd的取值,是与传入的文件参数有关,默认情况下为True,传入的file参数为文件的文件名,取值为False的时候,file只能是文件描述符,
什么是文件描述符,就是一个非负整数,在Unix内核的系统中,打开一个文件,便会返回一个文件描述符。
'''
'''
mode参数
Character Meaning
‘r' 以只读方式打开文件(默认)
‘w' 以写入方式打开文件,会覆盖已存在的文件
‘a' 以写入默认打开,如果文件存在,则在默认追加写入
‘b' 以二进制模式打开文件
‘t' 以文本模式打开(默认)
‘+' 可读模式(可添加到其他的模式中使用)
‘U' 通用换行符支持
'x' 如果文件已近存在,使用此模式打开将引发异常
'''
# 打开文件
f = open('D:\PythonWorking\test.txt')
print(f) #输出open参数类型 <_io.TextIOWrapper name='D:\PythonWorking\test.txt' mode='r' encoding='cp936'>
'''
read()方法
1、读取整个文件,将文件内容放到一个字符串变量中
2、如果文件大于可用内存,不可能使用这种处理
'''
print(f.read()) #读取文件内容:唧唧复唧唧,木兰当户织。
f.close()
'''
readline()方法
1、readline()每次读取一行,比readlines()慢得多
2、readline()返回的是一个字符串对象,保存当前行的内容
'''
f = open('D:\PythonWorking\test.txt')
print(f.readline())
f.close()
'''
readlines()方法
1、一次性读取整个文件。
2、自动将文件内容分析成一个行的列表。
'''
f = open('D:\PythonWorking\test.txt')
print(f.readlines()) # ['唧唧复唧唧,木兰当户织。']
f.close()
# 返回当前在文件中的位置
f = open('D:\PythonWorking\test.txt')
print(f.read())
print(f.tell()) # 当前的位置 24
f.close()
# 写入文件
f = open('D:\PythonWorking\test.txt','w') #以写入的方式打开
f.write('我爱写作')
print(f.tell()) # 覆盖了之前的内容,只有我爱写作8个字符。。。。
f.close()
# 移动文件读取指针到指定位置 fileObject.seek(offset[, whence]) offset -- 这是在文件中,读/写指针的位置。
# whence -- 这是可选的,默认为0,这意味着绝对的文件定位,其它的值是1,这意味着寻求相对于当前位置,2表示相对于文件的末尾。
f = open('D:\PythonWorking\test.txt')
f.read()
f.seek(0,1)
print(f.tell())
# 文件读写需要方法之open
'''
ope