从函数调用中获取值并在python中的函数中使用它们

从函数调用中获取值并在python中的函数中使用它们,python,Python,这是一个包含许多文件的目录。我将这些文件存储在列表b中。 我想提取每个文件中都有名称的文件 我想打开一个文件,它的内容是一个字符串apple。这个苹果词是通过参数传递的 问题是我不明白如何读取该值并在if条件下使用相同的字符串。您可以使用以下代码: def fun(EACH) : list1 = [] EACH = str(EACH) for all in a: # contains names of different checks for f

这是一个包含许多文件的目录。我将这些文件存储在列表b中。 我想提取每个文件中都有名称的文件

我想打开一个文件,它的内容是一个字符串apple。这个苹果词是通过参数传递的


问题是我不明白如何读取该值并在if条件下使用相同的字符串。

您可以使用以下代码:

def fun(EACH) : 
   list1 = []
   EACH = str(EACH)
    for all in a:  # contains names of different checks     
        for files in b :
              for line in open(str(files)) : 
                 if EACH in line :
                           print files
                           break

你真的需要逐行解析每个文件吗?你就不能做点像:

def grepFileForLines( self, fileName = "", keepLinesWith = "" ):
    file = open( fileName, 'r' )
    matches = []

    for line in file:
        if line.find( keepLinesWith ) > -1:
            matches.append( line )
    return matches  

开放的。。。像是为了确保您的文件在读取后关闭…

什么是a和b,为什么a在那里,您似乎没有使用它做任何事情?请修复缩进以匹配您的实际代码。这根本不会运行。a是一个目录,我只复制了代码的一部分。。a是一个用于存储目录路径的列表,b用于保存该目录中的所有文件。除非在类中,否则该文件不应用作变量名,否则它将不起作用;打开文件后,您永远不会关闭它。您可以将line.findkeepLinesWith替换为if keepLineswith in line:还可以查看您是否只是复制了自己的代码,而没有查看问题和原始代码?顺便说一句,括号周围不应该有空格。因此,与grepFileForLines self、fileName=、keepLinesWith=不同,它应该是grepFileForLines self、fileName=、keepLinesWith=。请仔细学习pep8!问题是我无法从参数中读取每个参数。。即使您的代码也必须从传递给函数的参数中读取每个参数。如何使用该参数以及如何在if条件中使用该参数OK,函数是什么?它的论点是什么?为什么你看不懂?请更新您的问题。这是一个小错误,现在已解决。谢谢你的帮助。
for b in a:
    for fname in b:
        with open(fname, "r") as f:
            content = f.read()
        if EACH in content:
            print "There's a {0} in {1}".format(EACH, fname)