在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 同一個py程序,獨立運行和在另一個py程序內(nèi)運行結(jié)果不同?

同一個py程序,獨立運行和在另一個py程序內(nèi)運行結(jié)果不同?

獨立的.py程序功能是正則匹配下維基百科一篇文章里的所有英文單詞并給每個單詞隨機賦值,按序排列并去重后以字典的形式存儲在txt文檔里。
獨立運行這個程序得到的是從a到z無重復的單詞以及其權(quán)值,一共是1365個單詞。

但是我用os.system("python filename.py")的形式嵌入在另一個py程序中運行后,結(jié)果單詞并未排序,而且最終結(jié)果是1370個單詞,多了,不明原因在哪?

文檔儲存為下圖形式。
clipboard.png

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()     #將英文單詞全部轉(zhuǎn)為小寫
        results.append(result)
    results = list(set(results))     #將匹配結(jié)果存儲在列表里并用set函數(shù)去除重復單詞
    results.sort()     #對列表排序
    for result in results:
        dictionary[result] = random.randint(0, 500)     #單詞為字典的鍵,隨機數(shù)為值,作為每個單詞的權(quán)重
    print (dictionary)
    output = open("filename.txt","w")
    for key in dictionary:
        output.writelines(key + ":" + str(dictionary[key]) + "\n")     #字典內(nèi)容寫入文件
    output.close()
finally:
    f.close( )

代碼如上,將這段代碼不使用os.system而直接放到程序里運行,結(jié)果又是對的
//地址路徑已處理

對得到的兩個結(jié)果做了一下差集,發(fā)現(xiàn)多的5個單詞為以下五個,不太懂其中的緣故:

clipboard.png

回答
編輯回答
逗婦乳

可以放一下代碼,還有文件位置關(guān)系之類的出來看看~

2017年4月5日 19:30
編輯回答
涼汐

既然你萌python有module又推崇唯一解決方案的理念(c艸別轉(zhuǎn)頭, 說的就是你!), 那么直接import就行了啊, 或者用python官方提供的subprocess(這貨是os.system的超集 啊)啊, 可能在mac上用os.system的心情就像c++里面踩到UB一樣...
什么時候是在沒辦法再嘗試os.system吧

2017年1月9日 10:40