2017-02-13 71 views
2

我的文本文件看起来像这样:如何改变一个特定的词在特定行的文本文件

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

回答

1

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

  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| 
相关问题