我.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()
Run Code Online (Sandbox Code Playgroud)
我正在使用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()
Run Code Online (Sandbox Code Playgroud)
我删除了,liste因为它没有使用.for row in file (ifile):当你创建时已经迭代了它的内容,我摆脱了url.
我变了
url =[urlparse(u).netloc for u in file (ipath, "r+b")]
Run Code Online (Sandbox Code Playgroud)
至
url =[urlparse(u).netloc for u in ifile]
Run Code Online (Sandbox Code Playgroud)
因为你已经打开了文件.如果你正在阅读字符串,我假设你不想要二进制模式.
我改变writerow(u)了写一个序列:writerow([u]).这会在u每行中添加一行,这意味着您的csv文件中不会包含任何逗号.如果您希望将所有结果放在一行中,请将此最终循环替换为此参数writer.writerow(sitesource).
| 归档时间: |
|
| 查看次数: |
21101 次 |
| 最近记录: |