首页 > 解决方案 > 单独的 .txt 文件到 csv 文件

问题描述

试图将 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')

标签: python-3.xpandascsvawksplit

解决方案


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

我创建了一个脚本来对齐第 60 列的最后一行。

脚本.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

推荐阅读