在python中,如何读取文件中的下一个单词直到下一行?
我正在尝试在匹配单词后从一行中读取单词: 确切地说- 我有一个包含以下文本的文件: -主机:本地主机 -生成时间:2006年11月15日上午09:58 -服务器版本:5.0.21 -PHP版本:5.1.2 我想搜索它,如果该文件包含“Server version:”子字符串,那么在“Server version:”之后读取下一个字符,直到下一行,在本例中为“5.0.21” 我尝试了以下代码,但它给出了下一行——PHP版本:5.1.2,而不是下一个word 5.0.21在python中,如何读取文件中的下一个单词直到下一行?,python,file-io,Python,File Io,我正在尝试在匹配单词后从一行中读取单词: 确切地说- 我有一个包含以下文本的文件: -主机:本地主机 -生成时间:2006年11月15日上午09:58 -服务器版本:5.0.21 -PHP版本:5.1.2 我想搜索它,如果该文件包含“Server version:”子字符串,那么在“Server version:”之后读取下一个字符,直到下一行,在本例中为“5.0.21” 我尝试了以下代码,但它给出了下一行——PHP版本:5.1.2,而不是下一个word 5.0.21 with open('/r
with open('/root/Desktop/test.txt', 'r+') as f:
for line in f:
if 'Server version:' in line:
print f.next()
您可能希望像这样替换该文本
if 'Server version: ' in line:
print line.rstrip().replace('-- Server version: ', '')
我们之所以使用line.rstrip,是因为读取行的末尾将有一个新行,并且我们将其剥离。您可能希望像这样替换该文本
if 'Server version: ' in line:
print line.rstrip().replace('-- Server version: ', '')
我们之所以使用line.rstrip,是因为读取行的末尾将有一个新行,我们将其剥离。您使用的是f.next,它将返回下一行。 相反,您需要:
with open('/root/Desktop/test.txt', 'r+') as f:
for line in f:
found = line.find('Server version:')
if found != -1:
version = line[found+len('Server version:')+1:]
print version
您正在使用f.next,它将返回下一行。 相反,您需要:
with open('/root/Desktop/test.txt', 'r+') as f:
for line in f:
found = line.find('Server version:')
if found != -1:
version = line[found+len('Server version:')+1:]
print version
您可以尝试对字符串使用split方法,使用字符串删除,即“Server version:”作为分隔符:
if 'Server version: ' in line:
print line.split('Server version: ', 1)[1]
您可以尝试对字符串使用split方法,使用字符串删除,即“Server version:”作为分隔符:
if 'Server version: ' in line:
print line.split('Server version: ', 1)[1]
可能有点过分,但您也可以使用模块re:
优点是只需键入一次键,但当然,通过将任何其他解决方案包装到函数定义中,也可以获得相同的效果。此外,您还可以进行一些额外的验证。可能有些过分,但您也可以使用模块re: 优点是只需键入一次键,但当然,通过将任何其他解决方案包装到函数定义中,也可以获得相同的效果。此外,您还可以进行一些额外的验证。
line='-- Server version: 5.0.21'
只是:
这将为您提供最后一个单词,而不是后面的所有字符:
如果希望所有字符都在以下位置之后:
替换:根据需要使用其他字符串 如你所愿
line='-- Server version: 5.0.21'
只是:
这将为您提供最后一个单词,而不是后面的所有字符:
如果希望所有字符都在以下位置之后:
替换:根据需要使用其他字符串 @tobias_k我们也可以替换它。我更新了我的答案check@N.N.Ontika如果你觉得我的回答对你有帮助,你可以:——@tobias_k我们也可以替换它。我更新了我的答案check@N.N.Ontika如果你觉得我的答案对你有帮助,你可以:-但在一代人的时间内不会起作用。。。或者,拆分“:”?@tobias_k操作问题是针对服务器版本的。但在生成时间内不起作用。。。或者,拆分“:”?@tobias_k操作问题是针对服务器版本的。根据您的评论,以下答案对您有所帮助,您为什么不接受一个?我想你甚至已经有一个被接受了,但后来又被拒绝了——为什么?我原以为所有正确的答案都可以被接受,但当我选择的时候,前一个被拒绝了,因为我是新来的,我没有足够的声誉去投票。但是我尝试了下面的答案,效果很好,谢谢大家帮助我。既然根据你们的评论,下面的答案帮助了你们,为什么你们不接受一个呢?我想你甚至已经有一个被接受了,但后来又被拒绝了——为什么?我原以为所有正确的答案都可以被接受,但当我选择的时候,前一个被拒绝了,因为我是新来的,我没有足够的声誉去投票。但我尝试了下面的答案,它奏效了,所以谢谢大家帮助我。