2009-07-07 5 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

あなたのタプルが奇形である[ 'VSFTP'] [ 'user_dirを']、 (vusername)、 'wr')を "%s /%s"という2つの書式文字列に変換します。そのため、フォーマット文字列に使用されていない引数があることを示すエラーが表示されます。私はあなたが間違った括弧を持っていると思う

+0

それはそれをしました...すべての人に感謝..それは速かった! 2番目のエラーに遭遇しました。これは、悪いファイル記述子のエラーです。自分自身でソートされたものを取得しようとしています。もう一度ありがとう! –

2

エラーはここにある:

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

は、次の3つのパラメータを持っていますが、2つだけの%s文字列インチ

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

「wr」は不明ですが、おそらくw +またはr +を意味します。

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

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

、あなたの行は次のようになります。

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

この行があるべきように見えます:(。私は閉じ括弧を上に移動)

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