【发布时间】:2011-04-18 11:08:32
【问题描述】:
我在循环中使用 .writer() 方法,如 Python 文档中所示。
我想写变量u的结果,一行一行(或者更好一行一行)。
实际上它在解释器中完美运行,但模块 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。
【问题讨论】:
-
python 解释器是否抛出错误或者是什么问题?顺便说一句,您正在打印变量“u”的值,但您正在将字母“u”写入 csv。这就是你想要的吗?
-
解释器中没有错误。我想打印变量 u 的值。顺便说一句,文件似乎没有打开。
-
您看到的结果是什么?文件是空的吗?将文件打开尝试,除了块,看看当你试图打开文件时是否有任何 IOError 被抛出 (ifile,ofile) 。如果没有 IOError ,请检查 sitesource 是否为空?打印它的内容,看看它是否有任何值。
-
可能你没有写终止字符?这就是我创建 writer 对象的方式 Writer = csv.writer(open(sys.argv[2], 'wb'), delimiter=',',quotechar='"', quoting=csv.QUOTE_MINIMAL)
-
for row in file (ifile) :不正确。ifile已经打开,所以应该是for row in ifile: