简体   繁体   English

文本文件行到 csv 列

[英]Text file lines to csv columns

I m trying to transfer data from a text file to csv.我正在尝试将数据从文本文件传输到 csv。 My text file contains lots of rows delimited by /n.我的文本文件包含很多由 /n 分隔的行。

My text file is like:我的文本文件是这样的:

1  CONTINUE

A:data

B:data

C:data

D:data

 Something A

$Param     = data

$Param2    = data

2 CONTINUE 

and so on, the structure is the same以此类推,结构相同

I need the output to be a csv like this:我需要输出是这样的csv:

Number | Var_A | Var_B | Var_C | Var_D | Something | Parameter 
1       |data  |  data   | data  |  data    |   A     |     Param
1       |data  |  data   | data  |  data    |   A     |     Param2

Hope I was clear enough:) Any ideas how to begin?:)希望我足够清楚:) 任何想法如何开始?:)

Question is pretty hard to find the real problem.问题很难找到真正的问题。 I made the code, but please tell me if your problem clearly exists.我制作了代码,但如果您的问题明显存在,请告诉我。

txt_lines = txt.split("\n")
df_dict = dict()
for line in txt_lines:
    if not line:
        continue
    if ":" in line:
        column = "Var_" + line.split(':')[0]
        row = df_dict.get(column, list())
        row.append(line.split(':')[-1])
        df_dict.update({column: row})
    elif "$" in line:
        column = "Parameter"
        row = df_dict.get(column, list())
        row.append(line.split()[0].split('$')[-1])
        df_dict.update({column: row})
    elif line.split()[0].isdigit():
        column = "Number"
        row = df_dict.get(column, list())
        row.append(line.split()[0])
        df_dict.update({column: row})
    else:
        column = line.split()[0]
        row = df_dict.get(column, list())
        row.append(line.split()[1])
        df_dict.update({column: row})
df = pd.DataFrame(dict([(k, pd.Series(v)) for k,v in df_dict.items()])).fillna('')
#df.to_csv("result.csv", index=False, sep="|")

df looks like this df 看起来像这样

  Number Var_A Var_B Var_C Var_D Something Parameter
0      1  data  data  data  data         A     Param
1      2                                      Param2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM