1

最終的なリダイレクト URL を取得して CSV ファイルに保存できるスクリプトがあります。

スクリプトは、たとえば A1、A3、A5 のように 1 列にコードを書き込みます。

A1 B1 C1 D1 のようにコードを行ごとに書き込む方法

これを見てください、私が望む赤い色、最終結果である青い色、そして私はそれを望んでいません(1列のリストで下にA1 A3 A5があり、すべてのセルの間にスペースがあります!! )

これが私の最終的なスクリプトです

import urllib2
import csv
import sys

url = 'http://www.test.com'

u = urllib2.urlopen(url)
localfile = open('C:\\test\\file.csv', 'a')
writer = csv.writer(localfile)
writer.writerow([u.geturl()])
localfile.close()
4

2 に答える 2

1

行が1つしかない場合は、自分でCSVを作成してみませんか?

import urllib2

url = 'http://www.google.com'

u = urllib2.urlopen(url)
localFile = open('C:\\file.csv', 'ab')
localFile.write(u.geturl() + ",")

localFile.close()
于 2013-07-10T10:11:45.433 に答える
0

writer.writerow()リストを行に書き込むことを意味します。したがって、呼び出すたびに新しい行が作成されます。したがって、結果は望ましくないものになり、それらは 1 つの列に表示されます。それらを一行で書きたい場合。リストを取得してから、必要なすべてのデータをその中に入れた方がよいでしょうl = [111, 222, 333, 444]writer.writerow(l)その後、一度だけ電話してください。その時欲しいものを手に入れることができます。

編集:
スクリプトがデーモンのように機能し、常に実行され、入力を待機している場合:

#10 is the number you want in a row, you can assign it yourself.
L = []
urls = ['http://www.google.com', 'http://facebookcom', 'http://twitter.com']
for url in urls:
    u = urllib2.urlopen(url)
    L.append(u.geturl())

localfile = open('C:\\test\\file.csv', 'w')
writer = csv.writer(localfile)
writer.writerow(L)
localfile.close()

スクリプトがコールバックのように機能する場合、毎回取得する URL は 1 つだけです。csvファイルを変更するためのAPI がモジュールに表示されないのは非常に残念です。

私に関しては、この場合、csv ファイルは必要ないと思います。通常、csv の 1 行は、リストとは異なり、データ構造全体を表します。ファイルを簡単にインポートしたい場合は、URL ごとに 1 行またはスペースで分割した通常のファイルを使用できます。次回必要になったときは、それを処理してリストに戻すstrなどの方法を使用するだけです。split

>>> 'http://www.google.com\nhttp://www.facebook.com\nhttp://www.twitter.com'.split('\n')
['http://www.google.com', 'http://www.facebook.com', 'http://www.twitter.com']
>>> 
于 2013-07-10T08:12:56.060 に答える