单独的.txt文件到csv文件

时间:2019-06-07 20:34:43

标签: python-3.x pandas csv awk split

试图将txt文件转换为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 个答案:

答案 0 :(得分:1)

您的请求不清楚,您想如何格式化最后一个字段。

我创建了一个脚本来对齐第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