Frage

Erster Python-Skript, und ich erhalte eine Fehlermeldung ich nicht um scheinen zu bekommen eine Config-Datei. Der erste Teil des Skripts nimmt Benutzereingaben und legt, dass in einer MySQL-Datenbank ohne problem..Then ich auf das Dateisystem Arbeit bekommen und die Dinge ein wenig Birne shaped..I kann es ohne Verwendung der Konfigurationsdatei Optionen zu arbeiten, aber ich mag es konsistent halten und ziehen sie aus dieser Datei:

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

Der Fehler Ich erhalte ist:

TypeError: not all arguments converted during string formatting

Wenn ich die Kommentarzeile Kommentar- funktioniert es und macht es ein bisschen weiter und Fehler, wie well..But ich damit umgehen würde, sobald ich diesen Schluckauf sorted..Thanks für jede Eingabe erhalten.

War es hilfreich?

Lösung

Ihr Tupel verunstaltet

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

sollte

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

Andere Tipps

Der Fehler ist hier:

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

Sie haben drei Parameter, aber nur zwei% s in der Zeichenkette. Sie wahrscheinlich will sagen:

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

Obwohl 'wr' unklar ist, werden Sie wahrscheinlich bedeuten w + oder r +.

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

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

Sie passieren drei Argumente (config [ 'vsftp'] [ 'user_dir'], (vusername), 'wr') zu einem Format-String erwartet zwei: "% s /% s". So wird der Fehler Sie sagen, dass es ein Argument für die Format-String, die nicht verwendet wird.

Ich glaube, Sie haben eine falsche Klammer, sollten Sie Ihre Linie:

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

Es sieht aus wie diese Zeile sollte sein:

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

(I bewegte, um die schließende Klammer über.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top