1. 程式人生 > 程式設計 >Python資料庫小程式原始碼

Python資料庫小程式原始碼

原始碼:

# dict1 是 字典 , 用來對應相應元素的下標,我們將檔案轉成列表,對應的也就是檔案的下標,通過下標來找檔案元素
dict1 = {'sort':0,'name':1,'age':2,'phone':3,'job':4 }
#將最後需要列印的資訊轉成列表的形式
def p_message(m1):
  if '*' in m1:
    m1 = dict1.keys()
    return m1
  m1 = m1.split(',')
  for i in range(len(m1)):
    m1[i] =m1[i].strip()
  return m1
#遍歷檔案資訊,將其轉化成列表的形式
#將函式轉化成生成器,好處是不用一次將檔案資訊全部傳入記憶體,而是用多少傳多少
def op_file(m2):
  m2 = m2.strip()
  with open(m2,encoding='utf=8')as f:
    for line in f:
      line = line.strip()
      line = line.split(',')
      yield line

#進行條件篩選
def choose(pp1,m3):
  lis = []
  m3 = m3.strip()
  if '>' in m3:
    c1,c2 = m3.split('>')
    c1 = c1.strip()
    c2 = c2.strip()
    g = op_file(m2)
    for line_lis in g:
      if int(line_lis[dict1[c1]]) > int(c2):
        li = []
        for l_list in pp1:
          li.append(line_lis[dict1[l_list]])
        lis.append(li)
    for i in lis:
      print(i)
  if '<' in m3:
    c1,c2 = m3.split('<')
    c1 = c1.strip()
    c2 = c2.strip()
    g = op_file(m2)
    for line_lis in g:
      if int(line_lis[dict1[c1]]) < int(c2):
        li = []
        for l_list in pp1:
          li.append(line_lis[dict1[l_list]])
        lis.append(li)
    for i in lis:
      print(i)
  if '=' in m3:
    c1,c2 = m3.split('=')
    c1 = c1.strip()
    c2 = c2.strip()
    g = op_file(m2)
    for line_lis in g:
      if c2 in line_lis[dict1[c1]]:
        li = []
        for l_list in pp1:
          li.append(line_lis[dict1[l_list]])
        lis.append(li)
    for i in lis:
      print(i)
#分析輸入的條件資訊
while 1:
  message = input('>>>')
  # message = 'select name,age from info where age > 22 '
  # m1 : 我們所要最後列印的資訊 m2 : 檔名 m3 : 篩選條件
  m1,m3 = message.split('where')
  m1,m2 = m1.split('from')
  m1 = m1.replace('select',' ').strip()

  #pp1 是 修改完的m1
  pp1 = p_message(m1)
  op_file(m2)
  choose(pp1,m3)

檔案內容:

1,Alex,22,13651054608,IT
2,Egon,23,13304320533,Tearcher
3,nezha,25,1333235322,IT

總結

以上所述是小編給大家介紹的Python資料庫小程式原始碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回覆大家的!