2013-07-06 52 views
1

我正在製作主桌面的列表,以便讀取哪些圖標是可執行的,哪些不是。我不斷收到錯誤: 類型錯誤:不能連接「海峽」和「名單」對象Python列表幫助:TypeError:無法連接'str'和'list'對象

下面是代碼樣本: 是的,我已經嘗試一切,它只是不想要的工作。

list0 = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""] 
    for filee in fls: 
     if filee.endswith(".jex"): 
      jkjk = filee 
      icon = os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk+"/Files/Icon") 
      for anything in icon: 
       if anything.endswith(".png"): 
        fttts = pygame.image.load("/Users/"+getpass.getuser()+"/Desktop/"+jkjk+"/Files/Icon/"+anything) 
        fttts = pygame.transform.scale(fttts, (48, 48)) 
        screen.blit(fttts, (15+aaas, 295+fasdd)) 
        print("aaas = "+str(aaas)) 
        print("fasdd = "+str(fasdd)) 
        fasdd = fasdd + 45 

        if fasdd >= winy-295-63: 
         aaas = aaas + 63 
         fasdd = -280 
      jkjk = jkjk+"/Files/Executable" 
      jkjk = os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk) 
      for exfilepy in jkjk: 
       if exfilepy.endswith(".py"): 
        for o in os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk+execfilepy): 
         ftttThis[o] = [str(os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk+execfilepy)[o])] 
        for i in list0: 
         list0[i] = ftttThis[i] 

.jex是自定義擴展名,並不會導致問題。這是名單。

輸出:

Traceback (most recent call last): 
    File "/Users/kf9z/Desktop/JupeeGUIFiles 2/JUPEE_GUI_WINDOWS copy.py", line 750, in <module> 
    top().top() 
    File "/Users/kf9z/Desktop/JupeeGUIFiles 2/JUPEE_GUI_WINDOWS copy.py", line 418, in top 
    lock().locked() 
    File "/Users/kf9z/Desktop/JupeeGUIFiles 2/JUPEE_GUI_WINDOWS copy.py", line 338, in locked 
    lock().unlocked() 
    File "/Users/kf9z/Desktop/JupeeGUIFiles 2/JUPEE_GUI_WINDOWS copy.py", line 410, in unlocked 
    setup().setdesk() 
    File "/Users/kf9z/Desktop/JupeeGUIFiles 2/JUPEE_GUI_WINDOWS copy.py", line 191, in setdesk 
    for o in os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk+execfilepy): 
TypeError: cannot concatenate 'str' and 'list' objects 

這是Python 2.7版(或2.X)

+1

它實際上不是告訴哪些並且是不可執行的,它告訴它 – MezuCobalt

+1

而不是創造空字符串列表的創建一個* empty *列表並使用'lis0.append()'添加新元素。 –

+0

它告訴它:因爲無論桌面上有多少額外的圖標:轉到list0 []查找圖標指向的目錄至。 – MezuCobalt

回答

0

你改變了jkjk在這裏的列表:

jkjk = os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk) 

然後你想串連它到一個字符串:

os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk+execfilepy): 

如果你想在原來的jkjk則列表分配到一些新的變量:

jkjk = jkjk+"/Files/Executable" 
lis = os.listdir("/Users/"+getpass.getuser()+"/Desktop/"+jkjk) 
for exfilepy in lis: 
    #your code 
相關問題