基本语法
语法一
file object = open(file_name [, access_mode][, buffering])
注意:操作完文件后,需要调用close方法关闭文件
例子
1 # 只读 2 f = open('file.txt', mode='r',encoding='utf-8') 3 context = f.read() 4 print(context) 5 f.close() 6 7 # 只写 8 f = open('file.txt', mode='w', encoding='utf-8') 9 context = f.write('从python写入') 10 print(context) 11 f.close() 12 13 f = open('file.txt', mode='wb') 14 f.write('从python写入'.encode('utf-8')) 15 f.close() 16 17 # 追加 18 f = open('file.txt', mode='a', encoding='utf-8') 19 f.write('从python追加写入 ') 20 f.close() 21 22 f = open('file.txt', mode='ab') 23 f.write('从python以bytes写入 '.encode('utf-8')) 24 f.close()
语法二
with open(file_name [, access_mode][, buffering]) as obj: pass
例子
with open('file.txt', mode='r+', encoding='utf-8') as obj: print(obj.read())
注意:此种方式不用调用close方法关闭文件
打开方式
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
注意:加‘b’代表以bytes类型打开
File的属性与方法
光标定位
seek()方法
按照字节定位光标
注意:seek(3)里面必须传一个参数
# 把光标定到第三个字节后,开始读完整个文件 fo = open('file.txt', 'r', encoding='utf-8') ret = fo.seek(3) print(ret) # seek = 3 print(fo.read())
tell()方法
告诉你光标的位置
fo = open('file.txt', 'r', encoding='utf-8') ret1 = fo.tell() # 默认是0的起始位置 print(ret1) print(fo.read())
文件的读写操作
write()方法
将任何一个字符写入文件
fo = open('file.txt', 'w', encoding='utf-8') fo.write('用write方法写入文件') fo.close()
read()方法
从文件中一次性读取内容
fo = open('file.txt', 'r', encoding='utf-8') ret = fo.read() print(ret) fo.close()
readline()方法
一行一行的读
fo = open('file.txt', 'r', encoding='utf-8') ret = fo.readline() ret1 = fo.readline() print(ret.strip()) print(ret1.strip()) fo.close()
readlines()方法
每一行当成列表的一个元素,添加到list中,可以通过for循环一行一行的读
fo = open('file.txt', 'r', encoding='utf-8') ret = fo.readlines() for line in ret: print(line.strip())