2016-11-12 75 views
-1

我希望Python不斷掃描文件夾,並在文件夾中創建新文件以啓動代碼的其餘部分。雖然循環索引錯誤

但是我堅持在這裏:

import os 

os.chdir("path") 
a = os.listdir("path") 
initial = len(a) 


while True: 
     b = os.listdir("path") 
     final = len(b) 
     if final > initial: 
       c = list(set(b) - set(a)) 
       a.append(c[0]) 

C [0]附加到列出然而代碼,然後用此錯誤崩潰

a.append(c[0]) IndexError: list index out of range 
+0

'print()'c = list(set(b) - 設置(a))'。 –

回答

0

這是因爲c是空。因此,爲了使這條線工作的最簡單的方法是:

import os 

os.chdir("path") 
a = os.listdir("path") 
initial = len(a) 

while True: 
    b = os.listdir("path") 
    final = len(b) 
    if final > initial: 
     c = list(set(b) - set(a)) 
     if c: 
      a.append(c[0]) 

而且while True沒有break語句不是好主意......

+0

我沒有添加中斷,因爲我希望腳本無限期地運行。由於文件將每天添加多次。 –

0
import os 

os.chdir("path") 
a = os.listdir("path") 
initial = len(a) 

while True: 
    b = os.listdir("path") 
    final = len(b) 
    if final > initial: 
     c = list(set(b) - set(a)) 
     a.extend(c) 

幾點 1.好主意,添加上幾秒鐘在while循環內睡覺。 2.如果刪除文件並添加新文件會發生什麼情況(可能不是有效的場景)