Python 根据csv文件更改字符串

Python 根据csv文件更改字符串,python,csv,replace,Python,Csv,Replace,我必须打开几个网站来检查一些东西。每个页面链接之间的唯一区别是我存储在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:

我必须打开几个网站来检查一些东西。每个页面链接之间的唯一区别是我存储在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"

字符串的replace方法返回一个新字符串,并且不会就地修改旧字符串,因此您必须在另一个变量中捕获新字符串或重新使用链接变量

link = link.replace("xxx", str(row))
原因是字符串是不可变的(创建后不能修改)


str.replace
返回一个新字符串,因此您必须捕获它:

link=link.replace(“xxx”,str(row))

尽管最好使用“模板”url,而不是在每次迭代中使用
xxx
link
重新分配到url。 具有模板url并使用
格式
创建所需url的示例:

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))

您也可以使用
格式

for row in reader:
    webbrowser.open('https://website.com/de/tour/{0}/geometrie.html'.format(row))
for row in reader:
    webbrowser.open('https://website.com/de/tour/{0}/geometrie.html'.format(row))