一、文件操作,读和写
打开文件:file=open(文件路径file,模式m,encoding="utf-8") 模式默认为r,以模式m编码为utf-8的形式打开文件。打开模式需关注,见下图。
读取文件:file.read()读取文件的内容,不传参则读取所有内容,传参(只能为整型)则返回指定的字节数。返回值为字符串。
file.readline()读取一行内容,返回的是字符串;
file.readlines()按行全部读取,返回的是列表;
写入内容:file.write(写入的字符串) 写入的内容位置和光标有关,直接打开文件时光标在最前面,先read再写入光标在最后,这点需注意。传参只能为字符串。
file.writelines(写入的字符串)写入的内容为一行,可识别换行符 ,并写入以 的多行字符串。传参可为字符串或者列表。
移动光标:file.seek(3,0)光标相对头部向左移动3位。file.seek(0,0)移动光标至最前面。
关闭文件:file.close()
具体的用法,可以通过下面这道练习题来学习。
# 我有两行这样的数据,存在一个test_data.txt里面
# url:'http://www.baidu.com//api/member/login,mobilephone:12345678901,pwd:123456
# url:'http://www.baidu.com//api/member/login,mobilephone:109876543210,pwd:234555
# 要求如下:
#将每一行的数据存到一个字典里面,且url、mobilephone、pwd为key,对应key后面的值为value。然后讲读取的每行数据存储为字典后存到一个总的列表里面。返回总列表
# 通过调用函数最后得到的数据为:
# [{'url': 'http://www.baidu.com//api/member/login', 'mobilephone': 12345678901', 'pwd': '123456'},{'url': 'http://www.baidu.com/login', 'mobilephone': '109876543210', 'pwd': '234555'}]
二、上下文管理器
使用场景:需要打开文件,避免执行代码后忘记关闭文件时使用
语法:with open(文件路径,打开模式,编码)as file:要执行的代码块
实例: