2017-08-05 74 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