我目前在我的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問題更新(我相信)所有信息。非常感謝你! –