第一个Python脚本,我得到一个错误,我似乎无法避开使用配置文件。脚本的第一部分需要用户输入,并把该到mysql数据库没有problem..Then我得到的文件系统的工作和事情有点梨shaped..I可以得到它,而无需使用配置文件选项工作,但我想保持一致,并从该文件中提取:

  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

如果我取消了注释行它的工作原理,并使其一点,并出现了错误的well..But我也有应对一旦我得到这个打嗝sorted..Thanks任何输入。

有帮助吗?

解决方案

您元组被有些变形

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

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

其他提示

在错误是在这里:

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

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

您正在传递三个参数(CONFIG [ 'VSFTP'] [ 'user_dir的'],(vusername), 'WR')的格式串期待二: “%s /%s” 时。因此错误是告诉你,有一种说法到未使用的格式字符串。

我觉得你有一个错误的括号,你行应为:

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

它看起来像这样行应该是:

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

(I移到右括号。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top