2016-11-10 103 views
1

我试图将txt文件的前三列的内容复制到Excel文件的前三列。将一列从txt文件复制到Excel文件中的一列,Python

这里是我的代码:

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文件的第一列!

+0

什么你通过一个txt文件的 “列” 的意思是?列是否由制表符分隔? – brianpck

+0

是的,它们是以表格的形式出现的(每列由制表符分隔) – Ssein

+0

您是否正在写入CSV文件(如标题中)或Excel文件(如您的代码中)? – brianpck

回答

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文件?

我也注意到在你的代码也许应该ValuesList中截断第3列,因为这是你看起来是想......

这可能是为什么你所得到的所有原始文件。因此,改变

valuesList = line.split('\t') 

valuesList = line.split('\t')[:3] 
相关问题