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