将多个txt写入Excel
在output文件夹下有多个TXT文件,每个TXT文件有10行,现将所有txt内容写入excel中。
一个txt内容如下:
在excel中的结果如下:
代码如下:
import xlrd
import os
from xlutils.copy import copy
class Solution:
def __init__(self):
self.row = 0
self.col = 0
def read_from_txt(self, txt_filename):
file_txt = open(txt_filename)
lines = file_txt.readlines()
self.name = txt_filename.split(os.path.sep)[-1].split('.')[0]
self.lines = list(map(float,lines))
print(self.name)
print(self.lines)
def write_to_excel(self, excel_filename):
wb = xlrd.open_workbook(excel_filename)
xwb = copy(wb)
# 新建工作簿
sheet = xwb.get_sheet(0)
# 如果对同一单元格重复操作会发生overwrite Exception,cell_overwrite_ok为可覆盖
# 添加工作表
sheet.write(self.row, self.col, self.name)
self.row += 1
for data in self.lines:
sheet.write(self.row, self.col, data)
self.row += 1
self.row = 0
self.col += 1
xwb.save(excel_filename)
# print('save')
if __name__ == '__main__':
dir = "output"
zidir = os.listdir(dir)
new_zidir = []
for zi in zidir:
if zi.endswith(".txt"):
new_zidir.append(zi)
s = Solution()
for filename in new_zidir:
txt_filename =os.path.join(dir,str(filename))
excel_filename = ".xls"
s.read_from_txt(txt_filename)
s.write_to_excel(excel_filename)