python csv按行而不是按列列出

python csv按行而不是按列列出,python,csv,rows,Python,Csv,Rows,我有一个脚本,可以采取最终的重定向url,并保存到CSV文件 脚本在1列中编写代码,例如A1、A3和A5 如何使其按行写入代码,例如A1 B1 C1 D1 请看我想要的红色,最终结果是蓝色,我不希望它是这样(列表在1列中,向下是A1 A3 A5,每个单元格之间都有空格!!) 这是我最后的剧本 import urllib2 import csv import sys url = 'http://www.test.com' u = urllib2.urlopen(url) localfile =

我有一个脚本,可以采取最终的重定向url,并保存到CSV文件

脚本在1列中编写代码,例如A1、A3和A5

如何使其按行写入代码,例如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()
writer.writerow()
表示将列表写入一行。所以,每次你打电话都会有新的一排。所以结果是你不想要的,它们在一列中。如果你想把它们写在一行。你最好得到一个列表,然后把你想要的所有数据放在一行中,比如
l=[111222333444]
。然后只调用一次
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。很抱歉,我在
csv
模块中没有看到任何用于修改文件的API

至于我,我认为在这种情况下你不需要csv文件。csv中的一行通常表示整个数据结构,而不是列表。如果您想轻松导入文件,您可以只使用普通文件,每个url一行或按空格分割。下次当您需要它时,您可以简单地使用
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']
>>> 
writer.writerow()
表示将列表写入一行。所以,每次你打电话都会有新的一排。所以结果是你不想要的,它们在一列中。如果你想把它们写在一行。你最好得到一个列表,然后把你想要的所有数据放在一行中,比如
l=[111222333444]
。然后只调用一次
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。很抱歉,我在
csv
模块中没有看到任何用于修改文件的API

至于我,我认为在这种情况下你不需要csv文件。csv中的一行通常表示整个数据结构,而不是列表。如果您想轻松导入文件,您可以只使用普通文件,每个url一行或按空格分割。下次当您需要它时,您可以简单地使用
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']
>>> 

如果只有一行,为什么不自己创建CSV呢

import urllib2

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

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

localFile.close()

如果只有一行,为什么不自己创建CSV呢

import urllib2

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

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

localFile.close()

它可能是你得到的csv。当你不明白的事情发生时,最好看看发生了什么。使用csv.reader,然后打印出其中的一部分,这样您就可以看到它,也许这样您就可以了解出了什么问题。如果没有,发布你看到的,也许我们可以帮助你!嗨,ryan,但我想写信,而不是看名单(我想用列而不是行来写一个URL列表。这可能是你得到的csv。当你不明白的事情发生时,最好看看发生了什么。使用csv.reader,然后打印出一些内容,这样你就可以看到,也许你就会明白什么是错的。如果没有,发布你看到的,也许我们可以帮助你!嗨,ryan,但我想写而不是读列表(我想按列而不是按行写url列表脚本用于保存重定向的url并保存它(每次它给我一个新的url)所以我不能写一个特定的列表,因为它是无限列表。我想要的是每当我运行脚本到一个新的列,比如A1 B1 C1而不是A1 A3 A5时,都写url。你建议更改什么?我认为列表仍然是一个更好的选择。例如,我有一个全局列表
L
,每次我得到
url
i do
L.append(url)
。请看,列表不是一个特定的列表,它会动态变化。在您获得一行中所需的URL数后,例如10。您可以调用
writerow
。在
csv
中,列表是一条记录,记录中的每个值都在列中。因此,如果您确实希望一次写入一行,我认为您需要首先读取该行,然后附加new url。但这与直接使用列表没有什么不同。@user2564147现在我明白你的意思,就像回调一样,对吧?它不能一直执行,所以每次只有一个url。在这种情况下,正如我上面所说的,你可能需要先读取记录,然后将新的url附加到记录中并写回。我想不出更好的主意了。对不起:(@user2564147谢谢你张扬玉,但我是初学者,我不明白你的意思!请你写代码让我看一下好吗?为什么我要按列写,因为我想在完成后导入文件(所以必须用CSV逗号分隔)所以它必须按列而不是按行列出,否则我无法导入它谢谢你张扬玉,我想你不理解我,结果是完美的(与我想要的结果相同)但是脚本首先错误地打印结果这是代码,所以到目前为止还不错,但是csv文件是这样的,但我不希望它是这样的,因为我无法将csv文件导入为csv逗号分隔的文件,因为它是按行打印的(A1 A3 A5,然后您无法导入它)因此,我希望它是这样的,如果它像这张照片,所以我可以导入它我希望你理解我,谢谢你嗨,脚本是为保存重定向的url和保存它(每次它给我一个新的url)所以我不能写一个特定的列表,因为它是无限的列表。我想要的是每次运行脚本到一个新的列时都写url,比如