繁体   English   中英

python csv按行而不是列列出

[英]python csv list by rows instead of columns

我有一个脚本,可以使用最终的重定向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()

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

import urllib2

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

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

localFile.close()

writer.writerow()表示将列表写入一行。 因此,每次调用它都会有一个新行。 所以结果就是您不想要的,它们在一栏中。 如果您想将它们写成一行。 您最好获得一个列表,然后将所需的所有数据放入其中,例如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。 非常抱歉, 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']
>>> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM