[英]Replace word in text python
我有一本书的文本为txt格式。
如果specific_words_dict
词典中包含一个单词,我想用word_1( cat
与cat_1)
替换该单词。 我写了这段代码,但是它不能代替文件中的单词。
for filename in os.listdir(path):
with open(path+"/"+filename,'r+') as textfile:
for line in textfile:
for word in line.split():
if(specific_words_dict.get(word) is not None):
textfile.write(line.replace(word,word+"_1"))
我究竟做错了什么?
不要同时读写文件。 它不会很好地结束。 我认为目前您正在追加文件(因此所有新行都将结束)。
如果文件不是太大 (可能不会),我会将整个内容读入ram。 然后,可以在重写整个文件之前编辑行列表。 效率不高,但很简单,而且有效。
for filename in os.listdir(path):
with open(os.path.join(path, filename)) as fr:
lines = fr.read().splitlines()
for index, line in enumerate(lines):
for word in line.split():
if specific_words_dict.get(word) is not None:
lines[index] = line.replace(word, word + "_1")
with open(os.path.join(path, filename), 'w') as fw:
fw.writelines(lines)
写入其他文件此外,您可以检查字典或文件中的单词是大写还是小写。 这也许就是为什么“替换”不起作用的原因。
for filename in os.listdir(path):
with open(path+"/"+filename,'r+') as textfile, open(path+"/new_"+filename,'w') as textfile_new:
for line in textfile:
new_line = line
for word in line.split():
if(specific_words_dict.get(word) is not None):
new_line = new_line.replace(word,word+"_1")
textfile_new.write(new_line)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.