отдельный файл .txt в файл csv - PullRequest
0 голосов
/ 07 июня 2019

пытается конвертировать текстовый файл в CSV, но не работает

оригинальный текст:

 استقالة #رئيس_القضاء #السودان  OBJ
أهنئ الدكتور أحمد جمال الدين، مناسبة صدور أولى روايته   POS
يستقوى بامريكا مرةاخرى و يرسل عصام العريان الي واشنطن شئ NEG
#انتخبوا_العرص #انتخبوا_البرص #مرسى_رئيسى  #_ #__ö  NEUTRAL

ожидаемый результат:

text                                                             value
استقالة #رئيس_القضاء #السودان                                   OBJ
أهنئ الدكتور أحمد جمال الدين، مناسبة صدور أولى روايته         POS
يستقوى بامريكا مرةاخرى و يرسل عصام العريان الي واشنطن شئ      NEG
#انتخبوا_العرص #انتخبوا_البرص #مرسى_رئيسى  #_ #__ö             NEUTRAL

Я пробовал это, но это не работает для ограничения пробела и запятой

awk 'BEGIN{print "text,value"}{print $1","$2"}' ifile.txt

Также я устал от Python, но он не содержит их всех

import pandas as pd
df = pd.read_fwf('log.txt')
df.to_csv('log.csv')

1 Ответ

1 голос
/ 08 июня 2019

Ваш запрос неясен, как вы хотите отформатировать последнее поле.

Я создал скрипт, который выравнивает последнюю строку в столбце 60.

script.awk

BEGIN {printf("text%61s\n","value")}  # formatted printing heading line
{
    lastField = $NF;               # store current last field into var
    $NF = "";                      # remove last field from line
    alignLen =  60 - length() + length(lastField); # compute last field alignment
    alignFormat = "%s%"alignLen"s\n";   # create printf format for computed alignment
    printf(alignFormat, $0, lastField); # format print current line and last field
}

пробег script.awk

awk -f script.awk ifile.txt

выход

text                                                        value
استقالة #رئيس_القضاء #السودان                               OBJ
أهنئ الدكتور أحمد جمال الدين، مناسبة صدور أولى روايته       POS
يستقوى بامريكا مرةاخرى و يرسل عصام العريان الي واشنطن شئ    NEG
#انتخبوا_العرص #انتخبوا_البرص #مرسى_رئيسى #_ #__ö           NEUTRAL
...