将输出管道传输到 csv 文件时保留文本格式

将输出管道传输到 csv 文件时保留文本格式

我有一个可执行文件,其输出如下内容,

Posture state: 3         Posture side: 0   
Posture state: 3         Posture side: 0  
Posture state: 3         Posture side: 0  
Posture state: 3         Posture side: 0  
Posture state: 3         Posture side: 2  
Posture state: 3         Posture side: 2  
Posture state: 3         Posture side: 2  
Posture state: 3         Posture side: 2  
Posture state: 3         Posture side: 2  
Posture state: 3         Posture side: 2  

我尝试按如下方式将输出传输到 csv 文件,但格式未保留。更具体地说 - 姿势状态和姿势侧之间的空间未应用。

./posture.exe > posture_result_acc5.csv

我想要将姿势状态移至 csv 文件的一列,将姿势侧移至下一列。如何实现?

答案1

将其粘贴到文件中并将其保存为 pose.py

for line in open('temp.txt','r'):
    a,b,c=line.split(':')
    state=b.replace('Posture side','').replace(' ','')
    side=c.rstrip().replace(' ','')
    print('%s,%s' %(state,side))

进而

./posture.exe > temp.txt
python posture.py > posture_result_acc5.csv

怎么运行的。

您的 pose.exe 的输出被写入一个临时文件。

Python 脚本每次读取临时文件一行。

每行按冒号分成三块。

“状态”值是删除了空格和“姿势侧”的中间块。

“side”值是删除了空格和换行符的第三个块。

这些以逗号分隔的对形式打印。

输出被重定向到 csv 文件中。

如果您想要单词和值,请将 Python 脚本的最后一行更改为

print('Posture state: %s,Posture side: %s' %(state,side))

相关内容