本文先只讲述txt格式文本打开及写入
1、打开
f = open('文件名') 打开文件,文件名处要写绝对路径,返回值是文件对象, 默认转化英文
2、读取
读取文件中的内容 f.read(),一次性全部读取出来。怎么写入的怎么显示
encoding编码格式,utf-8可识别中文/韩文/日文等
f.readline() 一行一行的读取,每次只读取一行
f.readlines() 全部读取,每行当成一个列表元素,返回一个列表数据
3、写入
f.write('value') 写入,每次只能写入一个字符串,返回写入内容的长度
f.writeline(['','',...'']) 写入多个字符串内容
4、模式
mode='w' 写入模式,表示可以向文件中写入内容。每次输入鼠标都是从头开始,将之前内容覆盖只显示最新内容;若之前没有该文件则会自动创建
内容将被写入case.txt文件中
mode='r' 读取模式,被打开的文件必须存在,否则报错
mode = 'a' 添加/追加的模式,每次打开鼠标定位在原有内容的末尾,在原有内容基础上追加
追加后case文件内容
mode = 'rb' 二进制文件模式 如:打开图片/视频。 mode = 'rt' 普通文本模式
5、with语句
打开文件后一定要记得关闭文件,关闭方法f.close()为了防止忘关闭文件一般用with语句
with open('文件名',mode='',ecoding='utf-8'):
语句
6、案例
将嵌套列表里的字典分行添加到文件中
'''
题目:把以下字典分行添加到文件当中:
person_info = [
{
'name':'vvv',
'age':22,
'gender':'男',
'hobby':'学习',
'motto':'学习使我快乐'
},
{
'name':'yuze',
'age':20,
'gender':'女',
'hobby':'拿30k offer',
'motto':'下次拿个40k的'
},
]
得到一个info.txt的文件:
name,age,gender,hobby,motto
vvv,22,男,学习,学习使我快乐
yuze,20,女,拿30k offer,下次拿个40k的
'''
person_info = [
{
'name':'vvv',
'age':22,
'gender':'男',
'hobby':'学习',
'motto':'学习使我快乐'
},
{
'name':'yuze',
'age':20,
'gender':'女',
'hobby':'拿30k offer',
'motto':'下次拿个40k的'
},
]
keys_list = []
all_value = []
before_value = []
later_value = []
def fun_key():
for i in person_info:
for keys,values in i.items():
if keys not in keys_list:
keys_list.append(keys)
all_value.append(values)
key_str = ','.join(keys_list)
return key_str
def fun_before_value():
for i in range(0,5):
before_value.append(all_value[i])
before_value[1] = str(before_value[1])
before_str = ','.join(before_value)
return before_str
def fun_later_value():
for i in range(5,10):
later_value.append(all_value[i])
later_value[1] = str(later_value[1])
later_str = ','.join(later_value)
return later_str
with open(r'E:\study\info.txt',mode = 'w', encoding = 'utf-8') as f:
f.write(fun_key()+'\n'+fun_before_value()+'\n'+fun_later_value())
with open('E:\study\info.txt', mode='r', encoding='utf-8') as f:
print(f.read())
将文件中的内容读取后保存到以列表嵌套字典的形式的列表当中
'''
题目:手工创建cases.txt文件,文件中手工复制2行数据:
url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456
url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000
请利用上课所学知识,把txt里面的两行内容取出然后保存到一个列表和字典当中:(可定义函数)
[
{
'url':'/futureloan/mvc/api/member/register',
'mobile':'18866668888',
'pwd':'123456'
},
{
'url':'/futureloan/mvc/api/member/recharge',
'mobile':'18866668888',
'amount':'1000'
}
]
'''
first_list = []
second_list = []
first_dict = {}
second_dict = {}
def fun_first_list():
list1 = result1.split('@')
list1[2] = list1[2].rstrip('\n')
for i in range(0,3):
first_list.append(list1[i].split(':'))
first_dict[first_list[i][0]] = first_list[i][1]
return first_dict
def fun_second_list():
list2 = result2.split('@')
for i in range(0,3):
second_list.append(list2[i].split(':'))
second_dict[second_list[i][0]] = second_list[i][1]
return second_dict
with open(r'E:\study\cases.txt',mode='r',encoding='utf-8') as e:
result1 = e.readline()
result2 = e.readline()
all_list = [fun_first_list(),fun_second_list()]
print('[')
for i in all_list:
print(i,',')
print(']')