在Python中将xls转换为csv WITHOUT分隔符

时间:2018-04-10 15:39:58

标签: python csv xlsx xls

我想将xls文件转换为csv文件,我找到了一个代码:

import xlrd
import unicodecsv

def xls2csv (xls_filename, csv_filename):
# Converts an Excel file to a CSV file.
# If the excel file has multiple worksheets, only the first worksheet is converted.
# Uses unicodecsv, so it will handle Unicode characters.
# Uses a recent version of xlrd, so it should handle old .xls and new .xlsx equally well.

wb = xlrd.open_workbook(xls_filename)
sh = wb.sheet_by_index(0)

fh = open(csv_filename,"wb")
csv_out = unicodecsv.writer(fh, encoding='utf-8')

for row_number in xrange (sh.nrows):
    csv_out.writerow(sh.row_values(row_number))

fh.close()

但问题是这段代码给了我一个类似的csv文件:

what i get

我想要这样的事情:

what i want

你可以看到我不想要“,”分隔符,我想保留列!

谢谢! (Python)的

2 个答案:

答案 0 :(得分:0)

CSV应该是机器可读的。您可以使用,;或制表符分隔,但必须用某些内容分隔。转换后你可能会把它读成excel错误。

编辑:仔细观察后,您的数据中似乎有逗号。我建议使用制表符分隔符

答案 1 :(得分:0)

我不知道我是否理解正确,但是... csv代表“逗号分隔值”,因此逗号(或其他类型的分隔符)必须存在。

但是,如果正确打开CSV文件,则不会看到逗号。

启动Excel,创建新的电子表格,点击数据并从文本文件中获取外部数据,然后按照说明操作,您将在Excel中导入CSV而不使用分隔符。

如有疑问,请查看此处:https://www.hesa.ac.uk/support/user-guides/import-csv

戴夫