独立的.py程序功能是正则匹配下维基百科一篇文章里的所有英文单词并给每个单词随机赋值,按序排列并去重后以字典的形式存储在txt文档里。
独立运行这个程序得到的是从a到z无重复的单词以及其权值,一共是1365个单词。
但是我用os.system("python filename.py")
的形式嵌入在另一个py程序中运行后,结果单词并未排序,而且最终结果是1370个单词,多了,不明原因在哪?
文档储存为下图形式。
import re, random
f = open("fiename.txt")
try:
text = f.read() #读取整个文件并放入一个字符串变量中
words = re.findall(r"\b[a-zA-Z]{2,50}\b", text) #正则匹配所有英文单词得到一个列表
results = []
dictionary = {}
for word in words:
result = word.lower() #将英文单词全部转为小写
results.append(result)
results = list(set(results)) #将匹配结果存储在列表里并用set函数去除重复单词
results.sort() #对列表排序
for result in results:
dictionary[result] = random.randint(0, 500) #单词为字典的键,随机数为值,作为每个单词的权重
print (dictionary)
output = open("filename.txt","w")
for key in dictionary:
output.writelines(key + ":" + str(dictionary[key]) + "\n") #字典内容写入文件
output.close()
finally:
f.close( )
代码如上,将这段代码不使用os.system而直接放到程序里运行,结果又是对的
//地址路径已处理
对得到的两个结果做了一下差集,发现多的5个单词为以下五个,不太懂其中的缘故:
可以放一下代码,还有文件位置关系之类的出来看看~