这是我的清单
list=['a','b','c']
使用此代码时
with open('commentafterlink.csv', 'w') as f:
f.write("%s\n" % list)
它将列表的每个令牌存储在一个单元格中,但我需要将整个列表存储在一个单元格中。问题出在哪里?
答案 0 :(得分:2)
您可以尝试以下方法吗?
import xlwt
from xlwt import Workbook
# Workbook is created
wb = Workbook()
# add_sheet is used to create sheet.
sheet1 = wb.add_sheet('Sheet 1')
# sheet1.write(1, 0, ' '.join(list))
# if you want the output to be ['a','b','c']
sheet1.write(1, 0, str(list))
wb.save('xlwt example.xls')
输出:
答案 1 :(得分:1)
lst=['a','b','c']
with open('commentafterlink.csv', 'w') as f:
f.write("%s\n" % "".join(lst))
输出:
编辑:
import xlsxwriter
lst=['a','b','c'] # avoid using list keyword
workbook = xlsxwriter.Workbook('commentafterlink.xlsx') # create/read the file
worksheet = workbook.add_worksheet() # adding a worksheet
worksheet.write('A1', repr(lst)) # write repr(lst) to cell A1
workbook.close() # close the file
输出:
答案 2 :(得分:1)
1)您不是在编写Excel文件,而是在编写CSV文件(Excel知道如何导入)。
2)您在写CSV文件时就好像它是一个文本文件一样,没有尊重CSV的语义。 CSV表示"comma-separated values"。如果包含文本['a','b','c']
,它将被解释为三列:['a'
和'b'
和'c']
。您需要引用该值才能正确执行该操作。 CSV中的默认引号是双引号。因此,如果您编写"['a','b','c']"
,它将作为一个单元格导入Excel。但是,
3)您正在手工编写CSV文件,这意味着很容易弄错格式(例如,忘记转义需要转义的内容)。通常,每当您以已建立的格式编写文件时,都值得检查该格式是否具有知道如何处理该文件的库。 Python本机知道如何使用csv
模块写入CSV文件,并且知道如何使用可以使用pip
安装的软件包(例如xlwt
)来写入Excel文件。
以下是您正确编写CSV文件的方式:
my_list = ['a', 'b', 'c']
import csv
with open('commentafterlink.csv', 'w') as w:
writer = csv.writer(w)
writer.writerow([str(my_list)])
注意:覆盖Python的内置变量(例如list
)是一件很糟糕的事情。
(我看到另一个回答者已经使用xlwt
为您提供了Excel特定的解决方案。)