我有一个名为" 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")
但似乎我遗漏了一些东西,这里是代码示例:
@ @@@@@@@@@@@@@
@ @
@@@@@@@@@@@@@ @
@ @
@ @@@@@@@@@@@@@
@ @
@@@@@@@@@@@@@ @
@ @
@ @@@@@@@@@@@@@
@ @
@@@@@@@@@@@@@ @
@ @
@ @@@@@@@@@@@@@
@ @
@@@@@@@@@@@@@@@
这与代码有关吗?或者我如何打开它?
答案 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