我必须打开几个网站来检查一些东西。每个页面的链接之间的唯一区别是我存储在CSV文件中的ID。 我想遍历CSV文件并替换每个网站的ID。
我想用replace语句执行它并更改链接中的xxx。但它没有改变id并尝试多次打开与xxx的链接。
import webbrowser
import csv
link = "https://website.com/de/tour/xxx/geometrie.html"
with open('spielbergList.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
print(row)
link.replace("xxx", str(row))
webbrowser.open(link)
print(link)
link = "https://website.com/de/tour/xxx/geometrie.html"
答案 0 :(得分:1)
str.replace
会返回一个新字符串,因此您必须抓住它:
link = link.replace("xxx", str(row))
虽然最好使用"模板"在每次迭代中使用link
将网址重新分配给xxx
。
使用模板网址并使用format
创建所需网址的示例:
import webbrowser
import csv
basic_url = "https://website.com/de/tour/{}/geometrie.html"
with open('spielbergList.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
print(row)
webbrowser.open(basic_url.format(row))
答案 1 :(得分:0)
字符串的replace方法返回一个新字符串,并且不会修改旧字符串,因此您必须在另一个变量中捕获新字符串或重新使用链接变量
link = link.replace("xxx", str(row))
原因是字符串是不可变的(你不能在创建后修改它们)
>>> a = 'hello world'
>>> a.replace('hello', 'hi')
'hi world'
>>> a # a is still hello world
'hello world'
>>> a = a.replace('hello', 'hi')
>>> a
'hi world'
>>>
答案 2 :(得分:0)
您也可以使用format
。
for row in reader:
webbrowser.open('https://website.com/de/tour/{0}/geometrie.html'.format(row))