0

スクレイピングデータをCSVファイルに保存するWebスクレイパーがあります。データは次のようになります。

ランダムなテキスト
ジョームメイ
1234ビッグストリート
ジョージア州アトランタ30331
エーカー.14小
ランダムなテキスト
ジェーンジョーンズ
4321リトルストリート
ジョージア州アトランタ30322
エーカー.07小
ランダムなテキスト

私はしたいと思います:

(1)Name、Street ,,Address<---の列を追加します。このサンプルはコンマで区切られていることに注意してください。

(2)上記のアドレス結果にカンマを追加したい。例は次のとおりです。

ジェーンジョーンズ
、4321リトルストリート
、、ジョージア州アトランタ30344
、、、エーカー.07小
、、、ランダムテキスト

カンマを使用して各行を目的の列にプッシュする方法に注意してください。不要なデータエーカー.07の小さくてランダムなテキストが、名前の付いた列からプッシュされます。

Pythonでこれを行うにはどうすればよいですか?手作業で行うこともできますが、何千ものアドレスを扱っているため、Pythonでこれを行う簡単な方法が必要です。

スクレイピングされた後にすべてのデータをリストにプルし、a =、b = 、、 c = 、、のようにコンマに変数を割り当ててから、変数をの特定の行に結合することは可能ですか?リストして、もう一度保存しますか?

また、列情報も追加する必要があります:columns Name、Street ,, Address

4

1 に答える 1

2

あなたの質問にはいくつかの詳細が欠けているように見えるので、私はあなたがこれについて何を意味しているのかを推測していますが、これはあなたが望むものに似たものを得るはずです:

import csv

with open('data.txt', 'r') as f:
    with open('data.csv', 'wb') as csv_out:
        line_iter = iter(l.rstrip('\n') for l in f)
        writer = csv.writer(csv_out)
        writer.writerow(['Name', 'Street', '', 'Address'])
        try:
            line_iter.next()    # discard 'random text' (?)
            while True:
                writer.writerow([line_iter.next(), '', '', ''])
                writer.writerow(['', line_iter.next(), '', ''])
                writer.writerow(['', '', line_iter.next(), ''])
                writer.writerow(['', '', '', line_iter.next()])
                writer.writerow(['', '', '', line_iter.next()])
        except StopIteration:
            pass        # reached end of file

上記のサンプルデータに対して次の出力が得られます。

名前、番地、住所
ヨム・メイ、、、
,1234 ビッグ ストリート,,
,,"アトランタ, GA 30331",
、、、エーカー.14スモール
、、、ランダムなテキスト
ジェーン・ジョーンズ、、、
,4321 リトル ストリート,,
,,"アトランタ, GA 30322",
、、、エーカー.07小
、、、ランダムなテキスト
于 2012-10-06T16:57:02.840 に答える