我目前在我的Python脚本中调用了一个python脚本,并试图将我的调用输出保存在一个CSV文件中。但是,现在它可以工作,但每个字符之间都会有逗号,所以输出不正确。CSV.writerow在每个字符之间都有逗号?
这是什么造成的?
import csv
import GetAlexRanking #External Method exposed here
import subprocess
import pandas as p
import tai
import numpy as np
loadData = lambda f: np.genfromtxt(open(f,'r'), delimiter=' ')
with open('train.tsv','rb') as tsvin, open('PageRanks.csv', 'wb') as csvout:
tsvin = list(np.array(p.read_table('train.tsv'))[:,0])
csvout = csv.writer(csvout)
for row in tsvin:
count = 0
cmd = subprocess.Popen("python GetAlexRanking.py " + row ,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True)
(output, err) = cmd.communicate()
exit_code = cmd.wait()
print exit_code #testing
print output
print err
csvout.writerow(row + "\t" + output) #writing,error here
count+=1
编辑:
在cmd中称为像这样"python GetAlexRanking.py www.google.com"
当从函数返回的样本行:
www.google.com
AlexaTrafficRank:1
GooglePageRank:9
我想这是保存在TSV为使(空格添加以使格式更清晰,所有列仅由制表符分隔:))
URL \t AlexaRank \t GoogleRank
www.google.com \t 1 \t 9
请展示了一个排,看起来输出什么样,什么它应该看起来像。请注意,第一个输出到csv文件应该是标题行。你考虑过csv.DictWriter()吗? – sabbahillel
请给出'tsvin'的示例元素。我只能假设'tsvin = list(np.array(p.read_table('train.tsv'))[:, 0])'实际上是返回一个单一的字符串,然后调用list()将它分成小块。例如。; >>> list(“helloworld”) ['h','e','l','l','o','w','o','r','l',' d'] – sleepycal
@sabbahillel问题更新(我相信)所有信息。非常感谢你! –