我非常擅长堆栈溢出和编程,并感谢您提供的任何帮助!
我想在Python中使用re.search函数来查找文件中的文本(这只是练习,因为最终我想使用re.sub和正则表达式来查找/替换)。但我无法让它发挥作用!
例如,如果我在Python中输入以下代码:
import re
SearchStr = 'world'
Result = re.search(SearchStr,"Hello world")
print Result
我得到以下输出:<_sre.SRE_Match object at 0x106875e00>
太好了!
但后来我创建了一个名为“python_test.txt”的文件,其中包含文本“Hello world”,我运行了以下脚本:
import re
InFileName = 'python_test.txt'
InFile = open(InFileName, 'r')
SearchStr = 'world'
Result = re.search(SearchStr,InFile)
print Result
我得到以下输出:None
如果我用InFile.read()
替换最后三行,我得到'Hello world.\n'
作为输出,所以我认为我的脚本正在读取文件。我还尝试在InFile.read()
条款中使用InFile
代替re.search
;这也没用。为什么我的脚本在我的文件中找不到“世界”?
答案 0 :(得分:2)
re.search
期望string为第二个参数。不是文件。尝试使用:
Result = re.search(SearchStr,InFile.read())