Python資料庫小程式

来源:https://www.cnblogs.com/if-it-is-possible/archive/2019/09/14/11519636.html
-Advertisement-
Play Games

源代碼:# dict1 是 字典 , 用來對應相應元素的下標,我們將文件轉成列表,對應的也就是文件的下標,通過下標來找文件元素dict1 = {'sort':0 , 'name':1 ,'age':2 ,'phone':3 ,'job':4 }#將最後需要列印的信息轉成列表的形式def p_mess ...


源代碼:

# 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
 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 按照上邊的執行流程圖,我們可以看出一個SpringMVC整體的一個執行輪廓,下麵我們具體來分析下 首先伺服器接收到一個請求,匹配並調用了我們的前端控制器(DispatcherServlet)也叫中央處理器的請求路徑,在web.xml文件中配置,我們來看下配置文件 因為DispatcherServle ...
  • [TOC] 1. 引用的定義 C++新增加了引用的概念: 引用可以看作一個已定義變數的別名 引用的語法 2. 引用的本質 引用在C++中的內部實現是一個常量指針 C++編譯器在編譯過程中使用常量指針作為引用的內部實現,因此引用所占用的記憶體大小和指針相同 從使用的角度,引用只是一個別名,C++為了實用 ...
  • 效果如下: 實現代碼; ...
  • [TOC] 題目 "P3958 乳酪" 思路 並查集。將乳酪的下錶面設為$0$號,輸入空洞位置時判斷該空洞如果與下錶面相切或相交就和到一個集合里,最後找到與上錶面相切或相交的空洞判斷與$0$號是否在一個集合里。 $Code$ ...
  • Eureka服務治理 下麵請聽第一個話題,母。。。咳咳,拿錯書了。 Eureka簡介 eureka是什麼呢? 簡單來說呢,當我的微服務應用多了起來,一個一個寫死再程式里是件很不優雅的事情,而且同一服務可能會多個實例存在,來對服務分流,就是負載均衡。 所以,我們需要一個位置來存放服務的訪問列表,以供消 ...
  • [TOC] 控制流程之for迴圈 基本語法 while可以迴圈一切事物 for 迴圈提供了一種手段,不依賴索引取值 for+break for+continue for+else for迴圈不被break終止就執行else後面的代碼,否則就不執行 for迴圈列印lodaing 數字類型內置方法 整型 ...
  • [TOC] 原文鏈接: "QRowTable表格控制項(五) 重寫表頭排序、支持第三次單擊恢復預設排序" 一、原生表格 開發客戶端程式的方式月來源多了,現在很流行的libcef、electron等等都可以作為快速開發客戶端軟體的方案,但是如果需要一個號的用戶體驗,還是離不開原生化的開發,雖然慢,但是性 ...
  • 簡介 簡單來說,springcloud的就是由一組springboot應用(服務)組成,相互之間通過REST等方式進行通信。 兩個springboot應用,其中一個作為服務提供者,一個作為服務消費者,我認為這就構成了一個最簡單的springcloud應用,之後其他的工具都是為這兩個應用來服務的。 我 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...