文件操作:
r 只读,打开文件不存在报错
w 只写 会清空原来文件内容
a 追加写,不会请求,打开的文件不存在的话,也会帮你创建一个文件 ,读文件的时候需要用到seek
import json
f=open('p.json','r')
str=f.read()
if len(str)>0:
res=json,loads(str)
1、实现一个商品管理的程序。
输出1,添加商品 2、删除商品 3、查看商品
添加商品:
商品的名称:xxx 商品如果已经存在的话,提示商品商品已经存在
商品的价格:xxxx 数量只能为大于0的整数
商品的数量:xxx,数量只能为大于0的整数
2、删除商品:
输入商品名称:
iphone 如果输入的商品名称不存在,要提示不存在
3、查看商品信息:
输入商品名称:
iphone:
价格:xxx
数量是:xxx
all:
print出所有的商品信息
除了增加删除查看三个基本的功能写成函数的形式,还存在其他的函数模块,将字典写入文件,获取文件内容返回以字典的形式
FILENAME='zuoye.json' #定义常量
import json
#获取文件,返回json格式的字典
def get():
with open(FILENAME,encoding='utf-8') as f:
content=f.read()
if len(content)>0:
res=json.loads(content)
else:
res={}
return res
#
#将字典写入文件中
def write(dic):
with open(FILENAME,'w',encoding='utf-8')as fw:
json.dump(dic,fw,indent=4,ensure_ascii=False)
#判断输入价格以及数量是否是数字
def check_digit(st:str): #告诉它传入的变量啥类型
if st.isdigit():
st=int(st)
if st>0:
return st
else:
return 0
else:
return 0
def add():
name = input('商品名称:').strip()
price = input('商品价格:').strip()
count = input('商品数量:').strip()
all_pro=get()
if check_digit(price)==0: #先判断是否是整数
print('价格输入不合法')
elif check_digit(count)==0:
print('数量输入不合法')
elif name in all_pro:
print('商品已经存在')
else:
all_pro[name]={"count":int(count),"price":int(price)}
write(all_pro)
print('添加成功')
#
#
def show():
name=input('输入要查询的商品:').strip()
all_pro=get()
if name == 'all':
print(all_pro)
elif name not in all_pro:
print('商品不存在')
else:
print(all_pro.get(name))
def delet():
name = input('输入要删除的商品:').strip()
all_pro = get()
if name in all_pro:
all_pro.pop(name)
print('删除成功')
write(all_pro)
else:
print('删除商品不存在')
choice=input('请输入你的选择:\n 1.添加文件,2.查看文件,3.删除文件')
if choice=='1':
add()
elif choice == '2':
show()
elif choice == '3':
delet()
else:
print('请输入正确选择')