Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提供按类型搜索电影的功能+;txt文件-python_Python_Python 3.x - Fatal编程技术网

提供按类型搜索电影的功能+;txt文件-python

提供按类型搜索电影的功能+;txt文件-python,python,python-3.x,Python,Python 3.x,我必须创建按流派搜索电影的功能,所以当我输入流派名称时,它应该打印出所有具有该流派的电影。但我有一个问题,例如,在我的txt文件中,我有(一个飞越布谷鸟的巢戏剧| 133 |米洛斯·福尔曼|杰克·尼科尔森|美国| 1975 | |“电影描述”…)。我用“|”将其拆分,并在[1]位置按索引显示流派。但我也有两种不同类型的电影,例如(《黑客帝国》动作片、科幻片| 136 |拉娜和莉莉·瓦乔夫斯基|基努·里夫斯基|美国| 1999 |电影描述”…) 现在,如果我输入“戏剧”,它将打印出索引[1]上有“

我必须创建按流派搜索电影的功能,所以当我输入流派名称时,它应该打印出所有具有该流派的电影。但我有一个问题,例如,在我的txt文件中,我有(一个飞越布谷鸟的巢戏剧| 133 |米洛斯·福尔曼|杰克·尼科尔森|美国| 1975 | |“电影描述”…)。我用“|”将其拆分,并在[1]位置按索引显示流派。但我也有两种不同类型的电影,例如(《黑客帝国》动作片、科幻片| 136 |拉娜和莉莉·瓦乔夫斯基|基努·里夫斯基|美国| 1999 |电影描述”…) 现在,如果我输入“戏剧”,它将打印出索引[1]上有“戏剧”的所有电影,但如果我输入,例如,“动作”,它将不会打印出矩阵,因为矩阵有两种类型(程序实际看到1),所以我必须在它们之间输入逗号。 我想制作一个程序,即使你的电影有两种类型,并且只输入其中的一种,你的程序也会识别出来并打印出来。(我尝试将“流派”部分拆分为“,”,但其列表索引超出范围,因为不是每部电影都有“流派”部分)

我做了一个函数,我把文件的所有部分都放在dict中,然后放在列表中,这样我就不必每次需要文件中的内容时都打开文件。 我也尝试过使用“如果有的话…”,但它只使用一个字母,所以效果不好。

如果r['genre'中的类型是:

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()