2014-04-10 111 views
1

我在Python中創建文件時遇到了一些問題。我想在桌面上創建它並命名它。比我的計劃應該建立在它anoter文件夾,並從用戶取了個名字,但是當我做這樣的事情:創建文件python

def folder(self): 
    home = os.sep.join((os.path.expanduser('~'),'Pulpit')) 
    if not os.path.exists(home): 
     home = os.path.join((os.path.expanduser('~'), 'Desktop')) 
    opto = home + '\OptoMaQ' 
    self.directory = opto 
    nam = str(self.nmget.get()) 
    mypath = opto + '\%s' %nam 
    if not os.path.exists(opto): 
     os.makedirs(opto) 
     if len(nam) == 0: 
      self.fold.config(text = 'This name is incorrect',background = 'red') 
     else: 
      if not os.path.exists(mypath): 
       os.makedirs(mypath) 
       self.fold.config(text = 'Folder was created',background = 'green') 
      else: 
       self.fold.config(text = 'This name is taken',background = 'red') 
    else: 
     if len(nam) == 0: 
      self.fold.config(text = 'This name is incorrect',background = 'red') 
     else: 
      if not os.path.exists(mypath): 
       os.makedirs(mypath) 
       self.fold.config(text = 'Folder was created',background = 'green') 
      else: 
       self.fold.config(text = 'This name is taken',background = 'red') 

它是當然的GUI編程。當我運行它時,出現錯誤:「opto = home +'\ OptoMaQ'TypeError:只能將元組(不是」str「)連接到元組」。有趣的是,它幾天前爲我工作,現在我不工作。任何人都可以幫助我?

回答

1

用途:

if not os.path.exists(home): 
    home = os.path.join(os.path.expanduser('~'), 'Desktop') 
opto = home + r'\OptoMaQ' 

os.path.join不採取元組作爲參數,os.sep.join一樣。

+0

但它仍然無法正常工作。刪除這些「(」並添加「r」後,我的代碼看起來像你在這裏一樣,但有一個錯誤,「join()只需要一個參數(給出2)」 – Maq92