我正在寻找最便宜的方法来自动将文件夹结构中的所有文本文件(制表符分隔)转换为.xls格式,保持列和行的形状不变。
编辑:这就是诀窍:
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
答案 0 :(得分:2)
最简单的方法是将所有文件从* .txt重命名为* .xls。 Excel将自动对数据进行分区,保持原始形状。
我不打算为你编写代码,但这是一个良好的开端:
os.listdir()
os.path.isdir()
和os.path.isfile()
查看您在初始目录中找到的每件“东西”是文件还是目录,并据此采取行动os.rename()
重命名文件,os.remove()
删除文件os.path.splitext()
拆分文件名和扩展名,或只使用file.endswith('.txt')
来处理正确的文件答案 1 :(得分:0)
这个怎么样?
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'))
对不起,一定是贴错了......