如何更改文本中特定行中的特定单词

2024-09-28 20:58:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我的文本文件如下所示:

Fjodor Dostojevski|Zlocin i kazna|1866|9788897572657|roman|4500|50|true|   
Dragoslav Mihajlovic|Kad su cvetale tikve|1968|3332221115554|drama|3000|20|true|   
Viliam Sekspir|Hamlet|1600|3214569879878|drama|6500|60|true|

我需要搜索像97888975726573332221115554这样的数字,如果数字在同一行中,则将该行中的单词true更改为false。你知道吗


Tags: true数字su文本文件romandramakadmihajlovic
1条回答
网友
1楼 · 发布于 2024-09-28 20:58:07

下面是一些代码,将处理您的行。对于数据中的每一行,它将:

  1. 拆分|上的行
  2. 检查有问题的字段是否在示例set
  3. 如果存在,插入false。你知道吗
  4. 把这行和join放在一起
  5. 将其添加到输出列表

代码:

# build a set of the keys we will look for
looking_for = {"9788897572657", "3332221115554"}

output_data = []
for line in test_data:
    fields = line.split('|')
    if fields[3] in looking_for:
        fields[7] = 'false'
    output_data.append('|'.join(fields))

for line in output_data:
    print(line)

测试数据:

test_data = [x.strip() for x in """
    Fjodor Dostojevski|Zlocin i kazna|1866|9788897572657|roman|4500|50|true|
    Dragoslav Mihajlovic|Kad su cvetale tikve|1968|3332221115554|drama|3000|20|true|
    Viliam Sekspir|Hamlet|1600|3214569879878|drama|6500|60|true|
""".split('\n')[1:-1]]

产生:

Fjodor Dostojevski|Zlocin i kazna|1866|9788897572657|roman|4500|50|false|
Dragoslav Mihajlovic|Kad su cvetale tikve|1968|3332221115554|drama|3000|20|false|
Viliam Sekspir|Hamlet|1600|3214569879878|drama|6500|60|true|

相关问题 更多 >