文件操作
文件的本质:句柄(唯一标识符)
r 读
w 写
a 追加
r+ w+ a+ 基于字符的读写模式
对于二进制的读写
rb wb ab
文件操作我们要新建一个文件,这里为了方便我们新建一个文本文件a.txt。
#文件操作
#f是文件句柄
f = open('a.txt','r')
#句柄去读取内容,放到data这个变量里
data = f.read()
print(data)
#关闭文件句柄!!!!!
f.close()
判断文件是否存在
import os
print(os.path.isfile(‘c:/test/a.txt’))
#文件的每一行变成一个列表存在
data = f.readlines()
#f是文件句柄
f = open('a.txt','r+')
while True:
info = f.read(4) #每次读取4个字
print(info)
if len(info)==0:#什么时候读不出来了
break
#关闭文件句柄!!!!!
f.close()
写文件:
w属性会把文件的内容清空!!!
f = open(’./a.txt’,‘w’)
#要写入什么内容
f.write(‘nihao’)
f.close()
追加写文件:
f = open(’./a.txt’,‘a’)
#要写入什么内容
f.write(‘nihao’)
f.close()
免关闭操作文件
with open(’./a.txt’,‘a’) as f:
f.write(“hahahahaha!!!”)
#with open可以用逗号打开多个文件句柄
with open('./a.txt','r') as f1,open('./b.txt','w') as f2:
data = f1.read()
#replace可以替换
data = data.replace('a','N')
f2.write(data)
操作操作系统命令
import os
#新建文件夹
os.mkdir(‘c:/abcd’)
#删除文件夹
os.rmdir(‘c:/abcd’)
#列出所有文件夹
print(os.listdir(‘c:/’))
#直接执行操作系统命令
print(os.system(‘whoami’))
题目
文件夹里有haha.txt,内容为
apple 10 3
tesla 100000 1
mac 3000 2
lenovo 2000 5
chicken 10 3
将文件的内容构造成[{‘name’:‘apple’,‘price’:10,‘amount’:3},{‘name’:‘tesla’,‘price’:100000,‘amount’:1}…]
并且计算总价格
答案:
list = []
with open('./haha.txt','r')as f:
#相当于readlines,一行一行读取
for line in f:
#把换行去掉又用空格进行分割
list2 = line.strip().split(' ')
#如果还有东西可以读
if list2:
#建立字典
dic = {'name':list2[0],'price':list2[1],'amount':list2[2]}
#把字典加入到列表中
list.append(dic)
print(list)
price = 0
#遍历列表
for i in list:
#每一次遍历的内容提取,并且转化为int进行操作
price += int(i['price'])*int(i['amount'])
print(price)