2013-04-22 184 views
0

我被分配寫一個抄襲剽竊者的程序。給定一個文件的文件夾,我將如何通過逐個文件遍歷它們,構造每個文件中所有6字短語的列表。這方面的一個例子是通過文件夾讀取?

現在是所有善良的人來援助他們的國家的時候。

包含6字詞組: 現在是所有的時間, 是時候讓所有的好, 的時間對所有的好男人, 時間都好男人, ...等等。

ExampleFile=F.read('File') 
index1=0 
index2=5 
List1=[] 
while True: 
    index1+=1 
    index2+=1 
    List1+= Examplefile[index1:index2] 

是我到目前爲止創建的6個單詞短語列表。那麼我怎麼去爲每個文件做這件事,然後比較這些結果來查看是否有任何兩個文件有超過200個相同的短語?我在Python中使用文件做得很少,所以儘可能地減少了一切。謝謝!

回答

3

由於它是功課,我認爲有幾個鏈接可以幫助您完成更多的代碼。

查看os.listdir,其中列出了遍歷目錄樹的文件夾中的所有文件和os.walk

然後您可以製作一個列表,其中每個項目是一個詞組的容器。我建議使用每個文件的短語set,以及這些集合的列表,或者可以使用frozensetset

然後,您可以將這些集合的所有成對組合與itertools.combinations併爲每對計算intersection。如果任何十字路口的大小高於閾值,則發現剽竊者。


您當前的代碼中的註釋:有變量名應以小寫字母開始,大寫名稱用於類的命名約定。