Сохранение текстового форматирования, когда вывод передачи по каналу к файлу 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 и стороны положения к следующему столбцу. Как это может быть сделано?

0
задан 5 March 2015 в 20:14

1 ответ

Вставьте это в файл и сохраните его как posture.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

Как это работает.

Вывод из Вашего posture.exe записан во временный файл.

Сценарий Python читает временный файл одна строка за один раз.

Каждая строка разделяется на три блока путем разделения на двоеточиях.

Значение 'состояния' является средним блоком с пробелами и 'Стороной положения', удаленной.

Значение 'стороны' является третьим блоком с пробелами и удаленным символом новой строки.

Они печатаются как запятая разделенная пара.

Вывод перенаправляется в файл CSV.

Если Вы хотите слова, а также значение, то изменяете последнюю строку сценария Python к

print('Posture state: %s,Posture side: %s' %(state,side))
2
ответ дан 3 August 2019 в 13:48

Другие вопросы по тегам:

Похожие вопросы: