Python库函数问题

时间:2017-08-05 15:01:00

标签: python

我有一个名为" movies.txt"的文本文件。里面是那些线:

f=open("movies.txt","r")
s=f.read()
print(s)
f.close()

从文件中我想要提取这些行并将它们与其他函数一起使用(按年/一般搜索)。 要打开文件我使用:

f=open("movies.txt","r")
s=f.read()
print(s)
f.close()

def search_movie_by_name(name,path):
    mystring = path
    for i in path:
        if word in mystring:
            print("Found")

但似乎我遗漏了一些东西,这里是代码示例:

@ @@@@@@@@@@@@@
@             @  
@@@@@@@@@@@@@ @
@             @  
@ @@@@@@@@@@@@@
@             @  
@@@@@@@@@@@@@ @
@             @  
@ @@@@@@@@@@@@@
@             @  
@@@@@@@@@@@@@ @
@             @  
@ @@@@@@@@@@@@@
@             @  
@@@@@@@@@@@@@@@

这与代码有关吗?或者我如何打开它?

1 个答案:

答案 0 :(得分:0)

所以你的代码没有多大意义。未声明的变量,未使用的文件内容等。我相信你想要做的是打开文件并迭代这样的行:

def search_movie_by_name(name, path):
    with open(path, 'r') as f:
        for line in f.readlines():
            if name in line:
                print("Found")
                return line

示例:

In [10]: def search_movie_by_name(name, path):
    ...:     with open(path, 'r') as f:
    ...:         for line in f.readlines():
    ...:             if name in line:
    ...:                 print("Found")
    ...:                 return
    ...: 

In [11]: search_movie_by_name("Godfather", "movies.txt")
Found

它打开给定path的文件并遍历这些行,直到找到给定name的行并打印“Found”。

对您的代码进行有限的修改:

f=open("movies.txt","r")
s=f.read()
print(s)
f.close()

def search_movie_by_name(name, file_content):
    for line in file_content.splitlines():
        if name in line:
            print("Found")

示例:

In [18]: f=open("movies.txt","r")
    ...: s=f.read()
    ...: print(s)
    ...: f.close()
    ...: 
    ...: def search_movie_by_name(name,file_content):
    ...:     for line in file_content.splitlines():
    ...:         if name in line:
    ...:             print("Found")
    ...:             

The_Godfather Francis_Ford_Coppola Crime 1972
The_Dark_Knight Christofer_Nolan Action 2008
Pulp_Fiction Quentin_Tarantino Drama 1994


In [19]: search_movie_by_name("Godfather", s)
Found