python中的文件操作

文件操作:
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('請輸入正確選擇')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章