Python 2.7 用python搜索文件中的字符串

Python 2.7 用python搜索文件中的字符串,python-2.7,Python 2.7,我需要做“grep-I str文件”返回的工作,但我一直在努力解决这个问题 我有一个名为“siteLookup”的func,我正在传递两个参数:str's'和文件句柄'f'。 我想a)确定字符串是否(单个)出现(在本例中site=“XX001”), b)如果找到了,则将找到它的行返回给调用者,并将我从[found]行提取的另一个字段值返回给调用者。(这是一个“csv”查找)。我已经让它定期工作,但它会停止工作,我不明白为什么 我尝试了所有不同的“开放”选项,包括f.readlines等 #exa

我需要做
“grep-I str文件”
返回的工作,但我一直在努力解决这个问题

我有一个名为“siteLookup”的func,我正在传递两个参数:str's'和文件句柄'f'。 我想a)确定字符串是否(单个)出现(在本例中
site=“XX001”
), b)如果找到了,则将找到它的行返回给调用者,并将我从[found]行提取的另一个字段值返回给调用者。(这是一个“csv”查找)。我已经让它定期工作,但它会停止工作,我不明白为什么

我尝试了所有不同的“开放”选项,包括f.readlines等

#example line: 'XX001,-1,10.1.1.1/30,By+Location/CC/City Name/'
#example from lookupFile.csv: "XX001","Charleston","United States"

sf = open('lookupFile.csv')

def siteLookup(s, f):
    site = s.split(',')[0].strip().upper()
    if len(site) == 5:
        f.seek(0)
        for line in f:
            if line.find(site)>=0:
                city = line.split(',')[1].strip('"').upper()
                return city
            # else site not found 
            return -1
    else:  # len(site) != 5
        return -1

city = siteLookup(line, sf)
print(city)
sf.close()
我在这段代码中找不到匹配项。(我已将此示例代码简化为单个搜索)。我希望得到与5位站点代码匹配的城市名称-站点代码是示例“行”中的第一个字段


非常感谢您提供的任何帮助

您的
返回值
缩进错误-如果在第一行中未找到您要查找的内容,它将返回-1,并且不会进一步查找

使用带有open(…)的
作为f:
使代码更安全:

打开(“lookupFile.csv”、“w”)作为f: f、 从lookupFile.csv中写入(“”)示例: “XX001”、“查尔斯顿”、“美国” “”)

输出:

CHARLESTON

谢谢-测试并确认工作正常!
CHARLESTON