2009-07-07 48 views
0

第一個Python腳本和我得到一個錯誤,我似乎無法繞過使用配置文件。腳本的第一部分需要用戶輸入並將其放入一個mysql數據庫中,沒有任何問題。然後我進入文件系統工作,事情變得有些梨形。我可以在不使用配置文件選項的情況下運行它,但是我想保持一致,並從該文件中提取:Python錯誤

vshare = str(raw_input('Share the user needs access to: ')) 
    vrights = str(raw_input('Should this user be Read Only? (y/n): ')) 
    f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername), 'wr')) 
    #f = open("/etc/vsftpd_user_conf/%s" % (vusername) , 'wr') 
    f.write("local_root=%s/%s" % (config['vsftp']['local_root_dir'], vshare)) 
    if vrights.lower() in ['y', 'ye', 'yes']: 
     buffer = [] 
     for line in f.readlines(): 
      if 'write_enable=' in line: 
       buffer.append('write_enable=NO') 
      else: 
       buffer.append(line) 
     f.writelines(buffer) 
    f.close() 

我得到的錯誤是:

TypeError: not all arguments converted during string formatting 

如果我取消了註釋行它的工作原理,並使得它遠一點和錯誤出來以及..但我會處理,一旦我得到這個呃排序..感謝任何輸入。

回答

3

你的元組是奇形怪狀

f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername), 'wr')) 

應該

f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername)), 'wr') 
+0

這樣做......感謝所有答覆..那很快!進入第二個錯誤,這是一個錯誤的文件描述符錯誤..試圖讓我自己整理出來..再次感謝! – 2009-07-07 18:27:54

2

的錯誤是在這裏:

open("%s/%s" % (config['vsftp']['user_dir'], (vusername), 'wr')) 

你有三個參數,但只有兩個%S的的字符串中。你大概的意思是說:

open("%s/%s" % (config['vsftp']['user_dir'], vusername), 'wr') 

雖然 'WR' 不清楚,你可能意味着W +或R +。

http://docs.python.org/library/functions.html#open

0
f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername), 'wr')) 

你傳入三個參數(配置[ 'VSFTP'] [ '的user_dir'], (vusername),'wr')轉換爲期望兩個格式字符串:「%s /%s」。所以錯誤是告訴你有一個參數沒有被使用的格式字符串。

0

我認爲你有一個錯誤的括號,你行應爲:

f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername)), 'wr') 
0

它看起來像這條線應該是:(我在移動的右括號)

f = open("%s/%s" % (config['vsftp']['user_dir'], vusername), 'wr')