文件操作:
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('請輸入正確選擇')