文件操作流程
1.打开文件
f = open(‘hello.txt‘, ‘r‘) # 以相应的模式打开文件‘hello.txt‘
‘r‘ 读模式,不可写
‘w‘ 写模式,不可读;如果文件不存在,则创建文件;
如果文件存在,则清空文件里的内容,并从头开始写入新内容
‘a‘ 写模式,不可读;如果文件不存在,则创建文件;如果文件存在,则在文件末尾写入新内容
‘r+‘ 读写模式,可读写;可读光标位置在0;当要写入内容时,在文件末尾添加
‘w+‘ 写读模式,可读写;如果文件不存在,则创建文件;
如果文件存在,则清空文件里的内容,并从头开始写入新内容
‘a+‘ 追加模式,可读写;可读光标位置在文件最后;如果文件不存在,则创建文件;如果文件存在,则在文件末尾写入新内容
2.对文件操作
data = f.read() # 对文件进行相对应方法的操作
3.关闭文件
f.close() # 关闭文件
文件操作方法
f.read(arg) # 读取光标后面的arg个字符,默认读取文件全部内容
f.readline() # 读取一行,光标移动到下一行开头(每行的最后一个字符为‘\n‘)
f.readlines() # 读取全部行,并存储为列表(每行的最后一个字符为‘\n‘)
for i in f.readlines():
print(i.strip())
for i in f: # for内部将对象f做成一个迭代器,用一行取一行
print(i.strip())
f.tell() # 返回光标位置,英文占1
个字符,中文占3个字符
f.seek(arg) # 设置光标位置为arg
f.flush() # 立即将缓存上的数据写入磁盘,不用等文件关闭
f.truncate(arg) # 截断:把光标位置之后的内容删除,只保留前面的内容。arg为位置参数,默认从最开始的位置截断
f.fileno() # 返回文件描述符,唯一的非负整型的数字
#with语句完成操作后会自动关闭打开的文件,不用写f.close()
with open(‘log‘, ‘r‘) as f:
f.readline()
f.read()
#with 同时管理多个文件对象
with open(‘log1‘, ‘r‘) as f_read, open(‘log2‘, ‘w‘) as f_write:
for line in f_read:
f_write.write(line)