自學Python4.9-生成器舉例

自學Python之路-Python基礎+模塊+面向對象
自學Python之路-Python網絡編程
自學Python之路-Python併發編程+數據庫+前端
自學Python之路-djangohtml

自學Python4.9 - 生成器舉例

舉例1:監聽文件輸入(用戶一邊輸入程序,一邊能夠監聽輸入的內容)

此時在file文件裏面輸入內容,在生成器執行裏面能夠看到file的內容,且後續一直爲空,程序一直在執行,只是讀出的數據是空。前端

進一步,若是line不爲空纔打印python

f = open("file",encoding="utf-8")
while True:
    line = f.readline()
    if line:
        print(line)

進一步,取消執行器看到的空格數據庫

f = open("file",encoding="utf-8")
while True:
    line = f.readline()
    if line:
        print(line.strip())

如何用生成器實現:

django

def tail(filename):
      f = open(filename,encoding="utf-8")
      while True:
             line = f.readline()
             if line.strip(): 
                print(line.strip())
tail('file')

 打印監聽每行字前面加******編程

 監聽每行字若是有python纔打印,  實現監聽過濾功能。網絡

舉例2:處理文件,用戶指定要查找的文件和內容,將文件中包含要查找內容的每一行都輸出到屏幕

def check_file(filename,aim):
    with open(filename,encoding='utf-8') as f:   #句柄 : handler,文件操做符,文件句柄
        for i in f:
            if aim in i:
                yield i

g = check_file('test.01','生成器')
for i in g:
    print(i.strip()) 

 

 

 

將文件test.01裏面含有"生成器"的行數打印出來:
併發

舉例3:寫生成器,從文件中讀取內容,在每一次讀取到的內容以前加上‘***’以後再返回給用戶

def check_file(filename):
    with open(filename,encoding='utf-8') as f:   #句柄 : handler,文件操做符,文件句柄
        for i in f:
            yield '***'+i

for i in check_file('test.01'):
    print(i.strip())

 

......post

相關文章
相關標籤/搜索