サイズが10GBのファイルがあります。このファイルには主にURLが含まれています。私は各URLのHTTPステータスコードを取得し、.CSV
拡張子を持つ別のファイルに格納しようとしています。
私は、コードの検索とPythonを使ってURLのステータスコードにアクセスするための解決策を見つけた:HTTPステータスをより早く見つける方法は?
import requests
request = requests.get('http://www.example.com')
print(request.status_code)
しかし、それは1つのURLになります。私はより大きなサイズのファイルを持っています。私はこのコマンドにファイルからURLをどのように入力できるか分かりません。 .CSV
形式の出力を保存する方法さえも
これは高速ではありません。私は10 GBのファイルのためのより速い結果を与えるより速い解決を探しています。
また、私はUbuntuのコマンドを試してみました:
xargs -n1 -P 10 curl -o /dev/null --silent --head --write-out '%{url_effective},%{http_code}\n' <Input_File.txt> output.CSV
しかし、それはまた、マルチスレッドではありません。一度に1行ずつ入力し、CSV
に保存しています。
私の質問は、この作業を10 GBのファイルサイズでより高速にする方法です。プログラミング言語でこの問題に対する解決策があれば、私は実装して喜んでします。ここで
は、URLのサンプルファイルである - 私の10ギガバイトのファイルから小さなチャンク:
:URL、HTTPステータスコード
https://drive.google.com/file/d/0BzQ6rtO2VN95c0YzclhySVZYNDQ/view?usp=sharing
私はとしてCSVで出力を保存したいです
例:
これは私のクエリを理解するのに役立ちます。
マシンが十分強力な場合は、Pythonでマルチプロセッシングを試してみてください。公開鍵のURLを設定し、公開キューからURLを取得するN個のプロセスを確立する。 – Acepcs
@Acepcsアドバイスをいただきありがとうございます。それでも私の友人のファイルサイズは10 GBです。またはさらにいくつかの時間で。プロセス数と分割数は、私が何をすべきかと考えています。私はすべてのファイルサイズを高速に実行するためのすべてのソリューションを探しています。私は、プログラムが仕事を完了させるまでに数日かかることは望んでいません。数時間は私が望むものです。 –
[これはいくつかのポインタを提供するかもしれません](https://stackoverflow.com/questions/6441509/how-to-write-a-process-pool-bash-shell)あなたがPythonを使いこなそうとしない場合。 –