我的问题是用另一个字符串替换文本文件中的字符串。这些关键字符串位于名为word_list的列表中。我尝试了以下,似乎没有任何效果。它打印出document.text中的句子,没有替换:
word_list = {'hi' : 'test', 'how' : 'teddy'}
with open("document.txt") as main:
words = main.read().split()
replaced = []
for y in words:
replacement = word_list.get(y, y)
replaced.append(replacement)
text = ' '.join(word_list.get(y, y) for y in words)
print text
new_main = open("done.txt", 'w')
new_main.write(text)
new_main.close()
document.txt的内容:
hi you, how is he?
当前输出与document.txt相同,应该是:
test you, teddy is he?
任何解决方案/帮助将不胜感激:)
答案 0 :(得分:1)
由于您似乎想要替换单词,因此这将使用更自然的定义'
;import re
word_list = {'hi' : 'test', 'how' : 'teddy'}
with open('document.txt') as main, open('done.txt', 'w') as done:
text = main.read()
done.write(re.sub(r'\b\w+\b', lambda x: word_list.get(x.group(), x.group()), text))
答案 1 :(得分:0)
word_list = {'hi' : 'test', 'how' : 'teddy'}
with open("document.txt") as main:
with open('done.txt', 'w') as new_main:
input_data = main.read()
for key, value in word_list.iteritems():
input_data = input_data.replace(key, value)
new_main.write(input_data)
这将读取文件的全部内容(如果它是一个大文件,则不是最有效的),然后迭代搜索并替换字典中的项目,并在输入文本上调用replace。完成后,它会将数据写入您的新文件。
使用这种方法需要记住的一些事情
hi
会看which
,所以你也应该照顾它。