我有一个像这样的文件(test.txt):
[06/Oct/2017:20:18:47 +0200] [pool-2-thread-7] http://10.12.214.20
[06/Oct/2017:20:19:38 +0200] [pool-2-thread-4] http://10.12.214.18
[06/Oct/2017:20:19:38 +0200] [pool-2-thread-4] http://10.12.214.18
[06/Oct/2017:20:19:49 +0200] [pool-2-thread-8] http://10.12.214.18
[06/Oct/2017:20:19:59 +0200] [pool-2-thread-7] ends.
[06/Oct/2017:20:20:47 +0200] [pool-2-thread-7] http://10.12.214.20
[06/Oct/2017:20:21:24 +0200] [pool-2-thread-4] ends.
[06/Oct/2017:20:21:34 +0200] [pool-2-thread-8] ends.
作为一个 python 初学者,我想获取特定行的行号,所以我搜索了一个解决方案并找到了这篇文章: 在 Python 中查找给定包含它的列表的项目的索引。我正在使用@tanzil 的答案,因为稍后我可能会寻找不在列表中的元素。
这就是我所做的:
将原始文件的行保存在列表中:
with open(test.txt) as f:
content = [line.rstrip('\n') for line in f]
print len(content)
index = [x for x in range(len(content))]
遍历原始文件:
with open(test.txt, "r") as file:
for line in file:
print find_element_in_list(index, line.rstrip('\n'))
查找原始文件每一行的索引:
def find_element_in_list(index_list, list_element):
try:
index_element = index_list.index(list_element)
return index_element
except ValueError:
return None
结果,根本没有匹配。我只得到“无”作为输出。
我读到这篇文章'is' 运算符在将字符串与空格进行比较时表现不同,并希望得到我的问题的答案,但无法根据我的问题调整答案。
我会感谢任何提示或想法!
(这不是在文件 Python 中获取特定短语的行号的重复项,因为我需要多次访问不同行的索引。我不会在每次需要特定行时遍历文件。)