我有很多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()
答案 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)