用多个循环替换for循环中的一部分字符串 [英] Replacing a part of string in a for loop with a number of loops done

查看:72
本文介绍了用多个循环替换for循环中的一部分字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何用完成的循环次数更改字符串的特定部分?

How can I change a certain part of a string with the number of loops I have done?

我正在使用Chromedriver(find_element_by_xpath)从网站上抓取数据.我看到当for循环计数超过10时会发生问题.在 count 达到10之前,它已经可以将/tr [1]替换为/tr [2],依此类推,但是一旦出现两位数,事情就会变得复杂起来.

I am scraping data from a website using Chromedriver (find_element_by_xpath). I see the problem occurs when for loop count exceeds 10. Until count reaches 10 it has been able to replace /tr[1] with /tr[2] and so on but as soon as the double digits come along things get complicated.

count = 0
for i in range(0, 21):
    count += 1
    string[65] = str(count)
    string = ''.join(string)
    print(string)
    string = list(string)

The output is:
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[1]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[2]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[3]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[4]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[5]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[6]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[7]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[8]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[9]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[10]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[110]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[1210]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[13210]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[143210]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[1543210]/td[2]


And what I expect output to be is:
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[1]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[2]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[3]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[4]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[5]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[6]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[7]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[8]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[9]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[10]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[11]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[12]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[13]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[14]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[15]/td[2]

推荐答案

尝试一下:

string = "//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[1]/td[2]"
all_list = [string[:65]+str(i+1)+string[66:] for i in range(0,15)]
print(*all_list, sep='\n')

输出:

//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[1]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[2]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[3]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[4]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[5]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[6]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[7]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[8]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[9]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[10]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[11]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[12]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[13]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[14]/td[2]
//*[@id='teams_wrapper']/div[2]/div[3]/div[2]/div/table/tbody/tr[15]/td[2]

这篇关于用多个循环替换for循环中的一部分字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆