将列中的txt文件复制到Excel文件中的列{Python

时间:2016-11-10 17:18:36

标签: python excel xlsxwriter

我正在尝试将txt文件的前三列内容复制到Excel文件的前三列。

这是我的代码:

import XlsxWriter
worksheet1 = workbook.add_worksheet()
worksheet1.write('A1', 'Time', bold);worksheet1.write('B1', 'User Value', bold);worksheet1.write('C1','Address', bold);worksheet1.write('D1', 'Serial Number', bold);
items = os.listdir(directory)
for FILE in items:
    if FILE.endswith('file.txt'):
            FileSelection = directory+'/' + FILE
            Array1 = []
            with open(FileSelection, 'r') as f:
                    for line in f:
                        valuesList = line.split('\t')
                        #print valuesList
                        Array1.append(valuesList)

        for j in range(len(Array1)):
            if j == 0:
                continue
            else:
                print Array1[j][0]
                worksheet1.write('A2:D2', Array1[j][0]) #I want to say, copy the columns A to D but start from the second raw

然而,它将整个txt数组复制到Excel文件的第一列!

1 个答案:

答案 0 :(得分:1)

看起来你想要的'文本文件'实际上是一个csv,只有一个不同的分隔符(这有点令人困惑的约定)。您可以使用csv模块指定:

>>> import csv
>>> with open('your file.txt', 'rb') as csvfile:
...     reader = csv.reader(csvfile, delimiter='\t')
...     for row in reader:
...         print ', '.join(row)

有一个类似的csv编写器模块,或者你真的想要一个excel文件吗?

我在你的代码中也注意到,值列表可能会截断前3列,因为这就是你想要的......

这可能是您收到所有原始文件的原因。所以改变

 valuesList = line.split('\t')

valuesList = line.split('\t')[:3]