使用 while 循环多次查找 A->B 字符串
Find A->B strings multiples times with a while loop
你好
我的项目要求我找到一个字符串间隔倍数(从display_url到display_resources) 在 .txt 文件中。
现在我有这样的代码,但是当我 运行 它时, 它永远不会中断 。
此代码的目标是:
- 从 le1 / le2 索引开始搜索字符串。
- 将新找到的索引从 dat / det 变量更新为 le1 / le2 [转到.txt文件中的下一个字符串间隔(在我的测试中是其中的四个)]
- 将 le1 & le2 变量添加到 urls 列表。
- 循环,只要 dat & det 不 returns -1。
- 打印在urls列表中得到的所有le1和le2的组合。
谢谢你的想法会有很大帮助。
urls = []
g = open('tet.txt','r')
data=''.join(g.readlines())
count = 0
le1 = 1
le2 = 1
while count >= 0 :
dat = data.find('display_url', le1)
det = data.find('display_resources', le2)
if dat < le1:
le1 = le1 +dat
if det < le2:
le2 = lez +det
urls.append(le1)
urls.append(le2)
if dat <= 0 :
count = -1
break
print(urls)
如果 'display_url'
和 'display_resources'
最初位于字符串中,则您的三个 if
语句永远不会被触发。你想要像下面这样的东西,它记录每一步的 det 和 dat 并从那一点开始再次搜索。 while 循环直到两个 if 语句都失败。
le1 = 0
le2 = 0
still_looking = True
while still_looking:
still_looking = False
dat = data.find('display_url', le1)
det = data.find('display_resources', le2)
if dat >= le1:
urls.append(dat)
le1 = dat + 1
still_looking = True
if det >= le2:
urls.append(det)
le2 = det + 1
still_looking = True
和
data = "somestuffdisplay_url some more stuff display_resources even more stuff display_url lastly more stuff still, can you believe it?"
returns:
[9, 37, 71]
你好
我的项目要求我找到一个字符串间隔倍数(从display_url到display_resources) 在 .txt 文件中。 现在我有这样的代码,但是当我 运行 它时, 它永远不会中断 。
此代码的目标是:
- 从 le1 / le2 索引开始搜索字符串。
- 将新找到的索引从 dat / det 变量更新为 le1 / le2 [转到.txt文件中的下一个字符串间隔(在我的测试中是其中的四个)]
- 将 le1 & le2 变量添加到 urls 列表。
- 循环,只要 dat & det 不 returns -1。
- 打印在urls列表中得到的所有le1和le2的组合。
谢谢你的想法会有很大帮助。
urls = []
g = open('tet.txt','r')
data=''.join(g.readlines())
count = 0
le1 = 1
le2 = 1
while count >= 0 :
dat = data.find('display_url', le1)
det = data.find('display_resources', le2)
if dat < le1:
le1 = le1 +dat
if det < le2:
le2 = lez +det
urls.append(le1)
urls.append(le2)
if dat <= 0 :
count = -1
break
print(urls)
如果 'display_url'
和 'display_resources'
最初位于字符串中,则您的三个 if
语句永远不会被触发。你想要像下面这样的东西,它记录每一步的 det 和 dat 并从那一点开始再次搜索。 while 循环直到两个 if 语句都失败。
le1 = 0
le2 = 0
still_looking = True
while still_looking:
still_looking = False
dat = data.find('display_url', le1)
det = data.find('display_resources', le2)
if dat >= le1:
urls.append(dat)
le1 = dat + 1
still_looking = True
if det >= le2:
urls.append(det)
le2 = det + 1
still_looking = True
和
data = "somestuffdisplay_url some more stuff display_resources even more stuff display_url lastly more stuff still, can you believe it?"
returns:
[9, 37, 71]