【发布时间】:2017-03-13 21:44:27
【问题描述】:
我查看了这里的各种示例,但我无法弄清楚发生了什么。任何帮助表示赞赏。
我有一个文本文件,我想通过字典将其中的数字翻译成单词。
由于文本文件太长,我只提供一个简短的示例。 文本文件:
Movie: 12 15 11 13
Director: 1 9 2 3
我有一个由制表符分隔的文件,我认为我已将其制成字典。 字典文件:
1 Adam
2 Lee
3 Tom
9 Jones
11 Hostel
12 WoW
13 Home
15 Surf
到目前为止,我的代码将运行在文本文件中,并只翻译它到达的第一个数字。
所以对于数字 11,它不会用 Hostel 替换它,而是用 AdamAdam 替换它。如果我将单词边界 \b 添加到数字中,则不会被替换。
代码:
f = [i.strip().split('\t') for i in open('dict')]
with open('new.txt', 'w') as outfile, open('printnumbers') as infile:
for line in infile:
for oldword, newword in f:
line = line.replace(oldword, newword)
outfile.write(line)
最终我希望能够用一个字典替换一行,用另一个替换下一行。我会尝试做更多的研究。
再次感谢。
【问题讨论】:
-
字典是无序的,所以
1出现在11之前的可能性当然很大。 调用你的变量一个“词”不会自动使它如此。 -
嗯。我绝对明白你在说什么,我试图通过设置单词边界来让它搜索整个单词,但它只是没有替换任何东西。是因为文件根本错误吗?还是我错过了什么。
标签: python string list dictionary replace