自动转换TXT到XLS

我正在寻找自动将文件夹结构中的所有文本文件(制表符分隔)转换为.xls格式的最便宜的方式,保持列和行的形状不变。

目前我在MacOS上。 Linux和Windows可用。

编辑:

import xlwt import xlrd f = open('Text.txt', 'r+') row_list = [] for row in f: row_list.append(row.split()) column_list = zip(*row_list) workbook = xlwt.Workbook() worksheet = workbook.add_sheet('Sheet1') i = 0 for column in column_list: for item in range(len(column)): worksheet.write(item, i, column[item]) workbook.save('Excel.xls') i+=1 

这应该做…

最简单的方法是将所有文件从* .txt重命名为* .xls。 Excel将自动分区数据,保持原来的形状。

我不会为你写代码,但这是一个开始:

  • 您可以使用os.listdir()列出目录内容
  • 你可以使用os.path.isdir()os.path.isfile()来查看你刚刚在你的intial目录中find的每一个东西是一个文件还是一个目录,
  • 您可以使用os.rename()来重命名文件,使用os.remove()来删除文件
  • 您可以使用os.path.splitext()来分割文件的名称和扩展名,或只是file.endswith('.txt')来处理正确的文件

这个怎么样?

 import xlwt textfile = "C:/Users/your_path_here/Desktop/test.txt" def is_number(s): try: float(s) return True except ValueError: return False style = xlwt.XFStyle() style.num_format_str = '#,###0.00' #for textfile in textfiles: f = open(textfile, 'r+') row_list = [] for row in f: row_list.append(row.split('|')) column_list = zip(*row_list) workbook = xlwt.Workbook() worksheet = workbook.add_sheet('Sheet1') i = 0 for column in column_list: for item in range(len(column)): value = column[item].strip() if is_number(value): worksheet.write(item, i, float(value), style=style) else: worksheet.write(item, i, value) i+=1 workbook.save(textfile.replace('.txt', '.xls')) 

对不起,一定是粘贴了错误的东西…