Python - 读取文本并写入 csv。将空列替换为默认的“N/A”值

Posted

技术标签:

【中文标题】Python - 读取文本并写入 csv。将空列替换为默认的“N/A”值【英文标题】:Python - Read text and write into csv. Replace empty columns as a default 'N/A' value 【发布时间】:2021-12-01 02:18:14 【问题描述】:

我有一个 txt 文件,“iteration.txt”。 我只想抓取“部分”之后的数据以写入 csv。 “A 部分”有 2 个输入和输出。 “B 部分”没有输入和输出,我想将“N/A”放在空列中。

'iteration.txt'

Input-> 000
Output-> 000
Codex153 @ Section_A_Iterating
Input-> 101
Output-> 010
unwanted data
Input-> 320
Output-> 321
unwanted data
Codex173 @ Section_B_Extracting
Codex183 @ Section_C_Iterating
unwanted data
unwanted data
Input->011
Output-> 011

我已经完成的代码:

with open('iteration.csv', 'w') as writer:
    flag = False
    writer.write ('Section,Input,Output'+'\n')
    for eachline in open('iteration.txt').readlines():

        if 'Section' in eachline:
            flag = True
            writer.write (eachline.split()[-1]+'\n')
            #print (section_list)

        if flag:
            if 'Input' in eachline:
                writer.write (eachline.strip() + '\n')

            if 'Output' in eachline:
                writer.write(eachline.strip() + '\n')

上述代码的CSV输出:

预期的 csv 数据:

对不起,我是新手,我不太确定如何将“N/A”放在空列中,以及如何根据其各自的标题放置数据。有什么简单的方法可以做到这一点,最好不要过多地更改上面的代码? 谢谢!

【问题讨论】:

【参考方案1】:

使用函数.fillna('N/A') ,您可以填充空值或不存在的值。

【讨论】:

OP 没有使用 pandas。 感谢您的评论。我明白了,嗯……有没有办法不使用 pandas 来做到这一点? 这可能有效。在正则表达式的帮助下替换空字符串 wirh "N/A"。 ***.com/questions/16720541/… yourstring.replace("", "N/A") 应该可以工作

以上是关于Python - 读取文本并写入 csv。将空列替换为默认的“N/A”值的主要内容,如果未能解决你的问题,请参考以下文章

python中对csv文件某一列的每一行文本进行分词后再写到该文件另一列怎么做

python读取并写入csv文件

使用FlatFileItemReader读取csv文件,遇到空列抛出异常

如何使用 udf 将空列添加到 Spark 中的复杂数组结构

如何避免将空值插入主键或非空列?

csv文件怎么打开 使用Python读取和写入CSV文件