2017-08-05 59 views
-1

我有一个文本文件名为“movies.txt”那里面是那些台词:Python库函数问题

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

从文件我想提取这些行,并与其他功能(按年份搜索使用它们/ genere ect)。 要打开我使用的文件:

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

你能不能给我们一个[完整的示例](https://stackoverflow.com/help/mcve)如何你正在运行/调用它? – Gerrat

+0

那么你得到的输出或错误是什么? – Adonis

+0

def search_movie_by_name(Baywatch,path): 这是你的意思吗? – Tom

回答

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并打印“找到”。

在有限的修改代码:

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 
+0

我不明白file_content,name是电影名称,file contect是行的位置? – Tom

+0

@Tom我已经添加了两个正在使用的方法的示例。 –

+0

谢谢,所以如果我理解正确,那么文件竞争是来自s而不是文件本身,这就是为什么我没有任何线索如何推进。 – Tom