Domanda

In primo script python e sto ottenendo un errore che non riesco a spostarsi utilizzando un file di configurazione. La prima parte dello script prende input dell'utente e mette che in un database mysql senza problem..Then ottengo al lavoro filesystem e le cose vanno un po 'shaped..I pera può farlo funzionare senza utilizzare le opzioni di file di configurazione, ma mi piacerebbe tenerlo coerente e tirare da quel file:

  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()

L'errore che sto ottenendo è:

TypeError: not all arguments converted during string formatting

Se io commento dalla riga commentata funziona e lo rende un po 'più e gli errori come well..But mi occuperò che una volta che ottengo questo singhiozzo sorted..Thanks per ogni ingresso.

È stato utile?

Soluzione

Il tupla è deformato

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

Dovrebbe essere

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

Altri suggerimenti

L'errore è qui:

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

Hai tre parametri, ma solo due% s nella stringa. Probabilmente abbia voluto dire:

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

Anche se 'WR' non è chiaro, probabilmente dire w + o + r.

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

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

Si passa tre argomenti (config [ 'vsftp'] [ 'user_dir'], (vusername), 'wr') per una stringa di formato in attesa di due: "% s /% s". Quindi, l'errore che si sta dicendo che c'è un argomento per la stringa di formato che non è in uso.

Penso che tu abbia una parentesi sbagliata, la linea dovrebbe essere:

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

Sembra che questa linea dovrebbe essere:

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

(Ho spostato la parentesi di chiusura sopra.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top