赞
踩
编程中读写无法同时操作
r: 只读 当文件不存在时报错
w: 只写 当文件不存在时,先创建。文件存在时,先清空。
a: 追加,文件不存在,先创建。文件存在,继续添加内容。
t: 字符串形式。 (如果选t,可以不写,默认为r)
b: 二进制形式。
一般计算机中存储的数据都是二进制形式存在的(图片、音频、视频等)
从以什么形式操作文件和以什么数据类型操作文件各选其一组合使用。
例如:rt,rb,tr,br等,不写以什么数据类型操作文件时默认为字符串。
# 以文件对象的形式打开已存在文件
file = open(r'test.txt','r',encoding='utf-8')
# 读操作:read,readline,readlines
# read:全部读取,结果为字符串
# readline:读取一行
# readlines:读取全部行,结果为列表,每一行是列表中的每个元素
# 每次读取某一行后再读取为下一行,全部读完后在此读取为空行
result = file.read()
print(result)
file.close()
# 每次读操作结束之后一定要执行关闭文件操作。
file =open(r'故事.txt','w',encoding='utf-8',neweline='')
# write:向文件写入内容
str1 = '静夜思\n唐 李白\n床前明月光\n疑是地上霜'
file.write(str1)
file.close()
file =open('故事.txt','w',encoding='utf-8',newline='')
str2 = '\n举头望明月\n低头思故乡'
file.write(str2)
file.close()
# 由于是利用w方式写入,因此每次都会先清空原文件,可利用a方式追加
file =open('故事.txt','r',encoding='utf-8')
print(file.read())
file.close()
预定义的清理操作:with
只要推出了with的缩进,直接执行清理操作,自动将文件关闭。
with open('故事.txt','r',encoding='utf-8') as file:
result = file.read
print(result)
print(file.read()) # 不在with缩进,文件已关闭,读操作会出错。
eval:将字符串序列化
eval中必须写长度非0的字符串
将引号中的数据转换为原本数据类型。
如果引号内还是一串字符串,且未被赋值,则会操作。
with open('evaltest.txt','w',encoding='utf-8',newline='') as file :
file.write(1) # 会报错,write里面只能写入字符串。
file = open('1.jpg','rb')
result = file.read()
file.close()
print(result)
# 读取图片二进制编码
# b'xxxx'二进制字节码
# 这里的写入方式就需要带上b,表示二进制写入。
# 否则默认为字符串方式写入。
file = open('2.jpg','wb')
file.write(result)
file.close()
csv文件中的数据以表格形式展示,但是其中的原理是以文本文件的原理。
利用程序创建csv文件
import csv csvfile = open('学生成绩.csv','w',encoding='utf-8') # 先写列名, csv.writer(csvfile).writerow(['编号','姓名','年龄','专业']) # writerow() --单行写入,wirterow中传递一个列表,列表表示一行,列表中的一个元素代表一个单元格的内容。 csv.writer(csvfile).writerows([ ['python001','lisa','18','math'], ['python002','jack','19','history'], ['python003','ben','20','english'] ]) # wrierows() --多行写入,也是传入一个列表,列表中元素数量代表写入行数。其中的每个元素就是表示一行内容的小列表。 csvfile.close() # csv文件的读操作 file = open('学生成绩.csv','r',encoding='utf-8') # csv.reader得到一个可迭代对象 data = csv.reader(file) for i in data : print(i) file.close()
根据酒店评分数据,加入平均分评分标准。
import csv file = open('G:\数据库ppt\北京高档酒店价格分析.csv', 'r', encoding='utf-8',newline='') data = csv.reader(file) data1= [i for i in data] list0 = ['平均评分'] for i in data1: if i[3]!='卫生评分' : avg = (eval(i[3] )+eval(i[4] ) + eval(i[5] )+ eval(i[6] )) / 4 list0.append(avg) file.close() file = open('北京高档酒店价格分析2.csv', 'w', encoding='utf-8',newline='') for i in range(len(data1)): data1[i].append(list0[i]) print(data1[i]) csv.writer(file).writerows(data1) file.close()
时空复杂度(时间复杂度和空间复杂度)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。