-2

我在文本文件中有以下几行:

some text
some text
fields: [orders.date, orders.collection, orders.cancelled, orders.location,
 orders.arrival, orders.country, orders.delivered, orders.colors,
 orders.complete_time, fight.cancelled, fligt.arrival, flight.delayed]
some text 
some text

我想替换'.'so 之后的每个单词,例如orders.dateshould now be orders.Date_time_stamp。同样,orders.collection要改为orders.Collected_at 由于这是一个txt文件,我不知道如何超越括号[],然后替换其中的每个单词。

我将单词存储为字典,因此我使用 for 循环。关键是旧词,价值是新词。例如 'date' 是key和 Date_time_stamp 是value.类似的,集合是键,值是 Collected_at

d = {
    'date': 'Date_time_stamp', 
    'collection':'collected_at'
    # And so on...
}

有没有办法解决这个问题?

4

1 回答 1

0

以下是如何使用 for 循环让程序遍历字典,并使用re.sub相应的值替换每个键:

import re

d = {'date': 'Date_time_stamp', 'collection':'collected_at'}

with open('text.txt', 'r') as f:
    text = f.read()
    for k in d:
        text = re.sub(f'.{k}(?!\w)', f'.{d[k]}', text)

with open('text.txt', 'w') as w:
    w.write(text)

前:

some text
some text
fields: [orders.date, orders.collection, orders.cancelled, orders.location,
 orders.arrival, orders.country, orders.delivered, orders.colors,
 orders.complete_time, fight.cancelled, fligt.arrival, flight.delayed]
some text 
some text

后:

some text
some text
fields: [orders.Date_time_stamp, orders.collected_at, orders.cancelled, orders.location,
 orders.arrival, orders.country, orders.delivered, orders.colors,
 orders.complete_time, fight.cancelled, fligt.arrival, flight.delayed]
some text 
some text
于 2020-08-31T22:22:53.850 回答