文件:因为懂你,所以永恒
打开文件——open
语法:open(file,mode="r",)
其中mode参数有以下几个值:
打开模式 | 执行操作 |
---|---|
'r' | 只读模式(默认) |
'w' | 以写入模式打开文件,覆盖已有文件,如果文件不存在就新建一个 |
'x' | 如果文件已经存在,使用该模式打开将抛出异常 |
'a' | 以写入模式打开,如果文件存在,在末尾追加写入 |
'b' | 以二进制形式打开文件 |
't' | 以文本模式打开(默认) |
'+' | 可读写模式(可添加到其他模式中使用) |
'U' | 通用换行符支持 |
注意,file参数中的路径如果遇到"",一定要再加一个""转义
,否则报错
打开文件之后的方法
文件对象方法 | 执行操作 |
---|---|
f.close() | 关闭文件 |
f.read(size=-1) | 从文件读取size个字符,当未规定size或者给一个负值的时候,读取剩余所有字符然后作为字符串返回 |
f.readline() | 以写入模式打开,如果文件存在,在末尾追加写入 |
f.write("str") | 将字符串写入到文件 |
f.writelines(seq) | 将文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象 |
f.seek(offset,from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾偏移offset个字节) |
f.tell() | 返回当前在文件中的位置 |
不关闭文件,文件无法保存
read()方法
read方法在写入模式中无效
使用该方法(不带参数)后再使用,会发现返回空值'',这是因为文件指针已经指到了文件的末尾,这时候可以使用tell()方法获取当前在文件中的位置。使用seek()方法来移动文件指针,例如使用file.seek(0,0)回到文件最初位置。
完全读取文件(使用迭代)
代码:
for each_line in file:
print(each_line)
可以将file转换成列表,也可以直接以文件形式读取
文件的写入
- write(str)
- writeline(str)
注意:必须在open文件的时候选择a模式或者w模式
写入之后一定要关闭