2016-08-11 23 views
1

何かを確認するためにいくつかのウェブサイトを開く必要があります。すべてのページへのリンクの唯一の違いは、私がCSVファイルに保存したIDです。 CSVファイルを繰り返して、すべてのWebサイトのIDを置き換えます。csvファイルに基づいて文字列を変更してください

私は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

文字列の方法置き換えるには、新しい文字列を返し、あなたが別の変数に新しい文字列をキャッチしたり、リンク変数を再使用する必要がありますので、場所に古いものを変更しない

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' 
>>> 
1

str.replace(あなたが作成した後にそれらを変更することはできません)文字列は不変であるということである新しい文字列を返すので、あなたはそれをキャッチする必要があります:

link = link.replace("xxx", str(row))

ではなく、すべての反復でxxxでURLにlinkを再割り当ての「テンプレート」URLを使用する方がよいでしょうけれども。 テンプレートのURLを有し、かつ必要なURLを作成するために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)) 
0

ます。またformatを使用することができます。

for row in reader: 
    webbrowser.open('https://website.com/de/tour/{0}/geometrie.html'.format(row)) 
関連する問題