Python .csv写入器
我在循环中使用.writer()
方法,如Python文档中所示。 我想逐行写出变量u
的结果(或者逐行更好)。Python .csv写入器
其实它在解释器中完美工作,但模块writerow()
似乎不工作。为什么?
from urlparse import urlparse
import csv
import re
ifile =open(ipath,'r')
ofile = open(opath, 'wb')
writer = csv.writer(ofile, dialect='excel')
url =[urlparse(u).netloc for u in file (ipath, "r+b")]
sitesource = set([re.sub("www.", "", e) for e in url])
liste = [re.split(",'", e) for e in liste]
ofile
for row in file (ifile) :
for u in sitesource:
print ("Creation de:", u)
writer.writerow(u)
ofile.close()
我正在使用Python 2.7。
猜你真正的意思,我想如下重写代码:
from urlparse import urlparse
import csv
import re
ifile =open(ipath,'r')
ofile = open(opath, 'wb')
writer = csv.writer(ofile, dialect='excel')
url =[urlparse(u).netloc for u in ifile]
sitesource = set([re.sub("www.", "", e) for e in url])
for u in sitesource:
print ("Creation de:", u)
writer.writerow([u])
ofile.close()
ifile.close()
我删除liste
,因为它是不使用。当您创建url
时,您已经重复了其中的内容,因此我摆脱了for row in file (ifile):
。
我改变
url =[urlparse(u).netloc for u in file (ipath, "r+b")]
到
url =[urlparse(u).netloc for u in ifile]
,因为你已经打开过的文件。如果您正在阅读字符串,我认为您不需要二进制模式。
我改变了writerow(u)
编写了一个序列:writerow([u])
。这会为每行添加一个u
,这意味着您的csv文件不会在其中激活任何逗号。如果你想把所有的结果都放在一行中,用这个陈述writer.writerow(sitesource)
代替最后的循环。
谢谢我只是创建一个新的.csv做相同的更改比你,它的作品。因为> url = [urlparse(u).netloc for you in ifile] 因为您已经打开了该文件。非常感谢 – c24b 2011-04-18 16:09:01
你想写字符串“u”吗?或变量的内容?如果是后面的选项,则删除括号。
我想通过在解释器中打印它来给变量u写入变量u的内容。但是当我用一个简单的字符串(如writer.writerow(“blabla”))在空白区域尝试它时。不起作用。它似乎是模块csv不起作用...但我放在开始导入csv。 – c24b 2011-04-18 12:14:38
writerow()
预计序列参数,所以我认为你需要使用writer.writerow([u])
因为每个u
是一个字符串 - 否则,你传递给它做它,你现在有它的方式的字符序列。
好的,我已经做了一个改变,并给它一个序列参数退出分裂功能。它返回列表集合(['','alain-bazot.fr','blog.lefigaro.fr','humeursdejeandornac.blogspot.com','lefigaro.fr','machronique)中的简化网址列表。 com','lemoci.com','france-amerique.com','agriculture.gouv.fr']),但仍然没有办法将它写入csv文件 – c24b 2011-04-18 13:47:40
python解释器会抛出错误还是什么问题?顺便说一句,你打印的是变量“u”的值,但是你写了字母“u”给csv。那是你要的吗? – 2011-04-18 11:15:22
口译员没有错误。我想打印变量u的值。顺便说一句,该文件似乎并未打开。 – c24b 2011-04-18 12:13:35
你看到了什么结果?是空的吗?将文件打开,尝试除块外,并尝试打开文件(ifile,ofile)时是否引发任何IOError。如果没有IOError,请检查网站源是否为空?打印其内容并查看它是否有任何值。 – sateesh 2011-04-18 13:17:50