2016-09-01 21 views
0

私はよく訪れたウェブサイトへのブラウジングを自動化するためのスクリプトを書こうとしています。私はウェブサイトをリストに入れて、webbrowser()モジュールをPythonで使用しようとしています。URLのテキストファイルでWebbrowser()を読み取る

import webbrowser                     
f = open("URLs", "r") 
list = f.readline() 
for line in list: 
    webbrowser.open_new_tab(list) 

これは、ファイル "URL"から最初の行だけを読み取り、ブラウザで開きます。どのファイルをどのように読み込み、別のタブでURLを開くことができるのか理解してもらえますか?

これを達成するのに役立つその他のオプションもあります。

+0

「URL」はURLのリストですか?また 'f.readline()'は最初の行だけを読むつもりです... – Harrison

+0

'open_new_tab'に' list'を渡していますが、イテレータは 'line'です。また、 'list'をシャドーイングするときに、' list'の名前として 'list'を使用しないでください。また、 'readline'ではなく' readlines'を望むと思います。 – idjaw

+0

@ハリソンはいそれはURLを含むファイルです。ファイル内の最初のURLを開きます。 – Tim

答えて

1

あなたには2つの大きな問題があります。

最初に問題があるのは、readlineで、readlinesではないことです。 readlineはファイルの最初の行を表示し、readlinesはファイルの内容のリストを表示します。

は、一例として、このファイルを取る:

# urls.txt 
http://www.google.com 
http://www.imdb.com 

をまた、あなたはそれからの読み込みが終了したら、これはあなたのために、ファイルを閉じますよう、コンテキストマネージャを使用しての習慣に取得します。今、あなたがしていることについては、本当の危険はありませんが、ファイルを開いたままにしています。

Hereは、ファイルに関する情報です。ファイルの処理とwithの使用に関するベストプラクティスについての言及があります。

コードの2番目の問題は、list(変数名として使用しないでください。これは組み込みリストを隠すので)を繰り返すときに、listをWebrowser呼び出しに渡すことです。これは間違いなくあなたがやろうとしていることではありません。 イテレータを渡したいとします。

だから、心の中でこのすべてを取って、あなたの最終的な解決策は次のようになります。

import webbrowser 

with open("urls.txt") as f: 
    for url in f: 
     webbrowser.open_new_tab(url.strip()) 

なお、改行文字が削除されていることを確認するために呼ばれているstrip

+1

詳細な応答をありがとう。間違いなく心に留めておくべきヒント。ありがとうidjaw本当にそれを感謝します。 – Tim

+0

@Tim大歓迎です。がんばろう。 – idjaw

0

あなたはファイルを正しく読み込んでいません。最初の行だけを読んでいます。また、ファイルを正しく読み込んでいたとしても、まだlistを開こうとしていますが、これは間違っています。 lineを開こうとしているはずです。

これはあなたのために働く必要があります。

import webbrowser 

with open('file name goes here') as f: 
    all_urls = f.read().split('\n') 
    for each_url in all_urls: 
     webbrowser.open_new_tab(each_url) 

私の答えは、テキストファイルの行ごとのURLの1を持っていると仮定しています。空白で区切られている場合は、行をall_urls = f.read().split(' ')に変更するだけです。別の方法で区切られている場合は、それに応じて分割するように行を変更してください。

関連する問題