第8章实践项目之疯狂填词
创建一个一个疯狂填词(Mad Libs),程序,它将读入文本文件,并让用户在该文本文件中出现 ADJECTIVE,NOUN,VERB等单词的地方,加上他们自己的文本。
首先准备一个a.txt的文本文件
程序代码如下:
#!/usr/bin/env python3.4
# coding:utf-8
# 8.9.2
import re
f1 = open('a.txt','r')
strf1 = f1.read()
print("原文件内容为:")
print(strf1)
strf1_list = strf1.split(' ')
f1.close()
# 由于原文件需要被替换的单词都是大写的英文单词
# 使用正则表达式找出原文件中所有将被替换的单词
replist = re.findall(r'[A-Z]{2,}',strf1)
print("原文件中将被替换的单词为:")
print(replist)
print()
for rep in replist:
inputstr = input("Enter %s " % rep)
print(inputstr)
# 先将替换后的单词插入到原列表对应的位置
strf1_list.insert(strf1_list.index(rep),inputstr)
# 再将原先的单词删除
strf1_list.remove(rep)
# 将列表转换为字符串
newstr = ' '.join(strf1_list)
print("替换后的内容为:")
#print(newstr)
# 将新的字符串写入文件b.txt中,并打印到屏幕
f2 = open('b.txt','w+')
f2.write(newstr)
f2.close()
f3 = open('b.txt','r')
print(f3.read())
f3.close()
输出结果为:
cat下b.txt
OK 大功告成。