通过流派+ txt文件制作搜索电影的功能 - python

时间:2018-01-16 17:45:32

标签: python python-3.x

我必须按类型搜索电影的功能,所以当我输入类型的名称时,可以打印出具有该类型的所有电影。但我有一个问题,在我的txt文件中,例如,我有(一个飞过杜鹃的巢| 戏剧 | 133 |米洛斯福尔曼|杰克尼科尔森|美国| 1975 |“电影描述” ...)。我把它分开了“|”和类型是[1]位置的索引。但我也有2种不同类型的电影,例如,(Matrix | 动作,科幻 | 136 | Lana和Lilly Wachowski |基努·里维斯|美国| 1999 |“电影描述” ...) 现在,如果我输入“戏剧”,它将打印出所有在索引[1]上有“戏剧”的电影,但是如果我输入,例如“动作”它将不打印出矩阵,因为矩阵有2类型(程序实际上看到1)所以我必须在它们之间用逗号输入它们。 我想制作一个程序,即使你的电影有两种类型,只输入其中一种,你的程序就能识别并打印出那部电影。 (我尝试用“,”分割部分“流派”,但是它的列表索引超出范围,因为不是每部电影都有“,”在流派部分)

list_movie = []

def movies_list():
    with open("film.txt","r") as f:
        all_h = ["name","genre","lasting","director","main role","country","year","desc"]
        for r in f.readlines():
            dicct = {}
            bla = r.strip().split("|")
            count = 0
            for i in bla:
                dicct[all_h[count]] = i
                count += 1
            list_movie.append(dicct)
movies_list()

def genre():
    x=False
    genres = input("Input genre: ")
    for r in list_movie:
        if r["genre"] == genres:
            print()
            print("Movie name: ", r["name"])
            print("Genre: ", r["genre"])
            print("Lasting: ",r["lasting"],"minutes")
            print("Director: ",r["director"])
            print("Main role: ",r["main role"])
            print("Country: ",r["country"])
            print("Year: ",r["year"])
            print("-------------------------------")
            x=True
    if x==True:
        print()
    else:
        print()
        print("No movie was found. ")
        print()
genre()

我创建了一个函数,我将文件的所有部分放在dict中然后放在列表中,这样每次我需要从该文件中获取内容时都不必打开文件。 我也尝试过去“如果有的话......”但是它只用了一个字母,所以它也不起作用。

1 个答案:

答案 0 :(得分:1)

如果r [' genre']中的流派:     ...