我正在尝试将这样的列表写入CSV文件:
['ABC','One,Two','12']
['DSE','Five,Two','52']
到这样的文件:
ABC One,Two 12
DSE Five,Two 52
基本上,在''内部写入任何内容。 但是,它将One和Two分成不同的单元格,并在第一个单元格中将ABC与One合并。
我的部分内容:
out_file_handle = open(output_path, "ab")
writer = csv.writer(out_file_handle, delimiter = "\t", dialect='excel', lineterminator='\n', quoting=csv.QUOTE_NONE)
output_final = (tsv_name_list.split(".")[0]+"\t"+key + "\t" + str(listOfThings))
output_final = str([output_final]).replace("[","").replace("]","").replace('"',"").replace("'","")
output_final = output_final.split("\\t")
print output_final #gives the first lists of strings I mentioned above.
writer.writerow(output_final)
第一个输出_最后一行给出
ABC One,Two 12
DSE Five,Two 52
答案 0 :(得分:2)
使用csv
模块只是起作用,因此您需要更具体地说明哪些因素可以说明元素在细胞中流血。例如,使用(现在已经过时)Python 2.7:
import csv
data_lists = [['ABC','One,Two','12'],
['DSE','Five,Two','52']]
with open("out.tsv", "wb") as fp:
writer = csv.writer(fp, delimiter="\t", dialect="excel", lineterminator="\n")
writer.writerows(data_lists)
我收到了一个out.tsv
文件:
dsm@winter:~/coding$ more out.tsv
ABC One,Two 12
DSE Five,Two 52
或
>>> out = open("out.tsv").readlines()
>>> for row in out: print repr(row)
...
'ABC\tOne,Two\t12\n'
'DSE\tFive,Two\t52\n'
这是应该的。现在,如果您使用制表符分隔的这些行,并且出于某种原因使用逗号作为分隔符将它们分开,当然,您会认为有两列,一列{{1}和ABC\tOne
一个。但这很愚蠢。
答案 1 :(得分:0)
您已设置了CSV编写器,但由于某种原因您完全忽略它并尝试手动输出这些行。那是毫无意义的。使用可用的功能。
writer = csv.writer(...)
for row in tsv_list:
writer.writerow(row)