首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python : TypeError:不是所有在字符串格式化期间转换的参数

Python : TypeError:不是所有在字符串格式化期间转换的参数
EN

Stack Overflow用户
提问于 2009-07-07 18:10:21
回答 5查看 454关注 0票数 0

首先,python脚本--我收到了一个错误--我似乎无法使用配置文件。脚本的第一部分接受用户输入,并将其放入没有problem..Then的mysql数据库中,我进入文件系统工作,事情变得有点糟糕。我可以不使用配置文件选项让它工作,但我希望保持它的一致性,并从该文件中提取:

代码语言:javascript
复制
  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:不是所有在字符串格式化期间转换的参数

如果我取消对注释行的注释,它会工作得更远一些,并将其作为well..But进行错误处理,一旦我处理了这个问题,我将处理这个问题。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-07 18:14:12

你的块茎变形了

代码语言:javascript
复制
f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername), 'wr'))

应该是

代码语言:javascript
复制
f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername)), 'wr')
票数 3
EN

Stack Overflow用户

发布于 2009-07-07 18:14:10

错误在这里:

代码语言:javascript
复制
open("%s/%s" % (config['vsftp']['user_dir'], (vusername), 'wr'))

您有三个参数,但字符串中只有两个%s。你可能是想说:

代码语言:javascript
复制
open("%s/%s" % (config['vsftp']['user_dir'], vusername), 'wr')

虽然“wr”还不清楚,但您可能指的是w+或r+。

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

票数 2
EN

Stack Overflow用户

发布于 2009-07-07 18:15:32

代码语言:javascript
复制
f = open("%s/%s" % (config['vsftp']['user_dir'], (vusername), 'wr'))

您正在将三个参数(config‘’vsftp‘、(vusername)、'wr')传递给一个格式字符串,它需要两个参数:"%s/%s“。因此,错误告诉您,格式字符串中有一个参数未被使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1093884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档