如何将xlsx转换为制表符分隔文件

时间:2016-12-18 18:42:49

标签: python excel macos csv tab-delimited

我有很多xlsx文件,将它们逐个转换为制表符分隔文件很痛苦

我想知道python是否有任何解决方案。在这里我发现了什么以及失败的原因 这是我发现的,我尝试了解决方案,但没有工作Mass Convert .xls and .xlsx to .txt (Tab Delimited) on a Mac

我还尝试为一个文件执行此操作以查看其工作原理但没有成功

#!/usr/bin/python
import xlrd
import csv


def main():
    # I open the xlsx file 
    myfile = xlrd.open_workbook('myfile.xlsx')
    # I don't know the name of sheet
    mysheet = myfile.sheet_by_index(0)
    # I open the output csv
    myCsvfile = open('my.csv', 'wb')
    # I write the file into it
    wr = csv.writer(myCsvfile, delimiter="\t")
    for rownum in xrange(mysheet.nrows):
        wr.writerow(mysheet.row_values(rownum))
    myCsvfile.close()
if __name__ == '__main__':
   main()

2 个答案:

答案 0 :(得分:2)

不需要主要功能。

并不确定你的缩进问题,但这就是我写你所拥有的东西。 (根据上面的第一条评论,应该有效)

#!/usr/bin/python
import xlrd
import csv

# open the output csv
with open('my.csv', 'wb') as myCsvfile:
    # define a writer
    wr = csv.writer(myCsvfile, delimiter="\t")

    # open the xlsx file 
    myfile = xlrd.open_workbook('myfile.xlsx')
    # get a sheet
    mysheet = myfile.sheet_by_index(0)

    # write the rows
    for rownum in xrange(mysheet.nrows):
        wr.writerow(mysheet.row_values(rownum))

答案 1 :(得分:0)

为什么您可以分三行来做那么多痛苦:

import pandas as pd

file = pd.read_excel('myfile.xlsx')

file.to_csv('myfile.xlsx',
             sep="\t",
             index=False)