使用Python编写控制台输出(空格分隔文本)以分隔excel表的列

时间:2013-04-23 12:37:58

标签: python xlwt

我有一个控制台输出,它有多行空格分隔的字符串。对于前 -

  

大家好

     

大家好

     

欢迎使用python

我想将它们写入单独的excel文件行中,每个字符串都放在ex -

的单独列中
     A1      A2         A3
B1   Hi      everyone
B2   Hello   to         all
B3   Welcome to         python

我们在python的xlwt包中有没有(text to columns)实用程序。

更新 我有一个exe有这些打印语句,一次输出所有。我只是执行该exe并在控制台上获取打印。我想从控制台读取并写入excel表,就像我上面解释的那样。这是代码:

#!/usr/bin/env python
import subprocess
import xlwt
process=subprocess.Popen('Test_Project.exe',stdout=subprocess.PIPE)
wb=xlwt.Workbook()
sheet=wb.add_sheet('python')
for rows in range(10):    #let say 10 rows and columns we have
    for cols in range(10):
        out = process.stdout.readline()
        sheet.write(rows,cols,out)
        print out
wb.save('stdoutput.xls')

2 个答案:

答案 0 :(得分:3)

只需将其写为.csv。

假设你有row这是一个以空格分隔的字符串:

outfile.write(','.join(row.split())

答案 1 :(得分:1)

假设您在开始处理输出之前需要完成该过程

#!/usr/bin/env python
import subprocess
import xlwt
process=subprocess.Popen('Test_Project.exe',stdout=subprocess.PIPE)
out,err = process.communicate()
wb=xlwt.Workbook()
sheet=wb.add_sheet('python')
row = 0
for line in out.split('\n'): 
    for i,wrd in enumerate(line.split()):    
        sheet.write(row,i,wrd)
    row=row+1 
wb.save('stdoutput.xls')