0

最も頻繁にアクセスする Web サイトへのブラウジングを自動化するスクリプトを作成しようとしています。webbrowser()Web サイトをリストに入れ、 Pythonのモジュールを使用して開こうとしています。現時点では、私のコードは次のようになります。

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

これは、ファイル「URL」から最初の行のみを読み取り、ブラウザで開きます。ファイル全体を読み込んで、別のタブで URL を開く方法を理解するのを手伝ってくれませんか?

また、同じことを達成するのに役立つ他のオプション。

4

2 に答える 2

1

2 つの主な問題があります。

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

例として、次のファイルを取り上げます。

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

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

これは、ファイルに関するドキュメントからの情報です。ファイルの処理と使用に関するベスト プラクティスについての言及がありますwith

コードの 2 番目の問題は、list(組み込みリストをシャドウするため、変数名として使用しないでください)反復処理を行っているときlistに、webbrowser 呼び出しに渡されていることです。これは間違いなくあなたがやろうとしていることではありません。iteratorを渡したい。

したがって、これらすべてを念頭に置くと、最終的な解決策は次のようになります。

import webbrowser

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

strip改行文字が確実に削除されるようにするために呼び出される に注意してください。

于 2016-09-01T02:13:00.953 に答える
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)

私の答えは、テキスト ファイルに 1 行に 1 つの URL があることを前提としています。スペースで区切られている場合は、単に行を に変更しall_urls = f.read().split(' ')ます。それらが別の方法で分離されている場合は、それに応じて分割するように行を変更してください。

于 2016-09-01T02:13:53.707 に答える