문제

첫 번째 Python 스크립트와 오류가 발생하여 구성 파일을 사용하지 않을 것 같습니다. 스크립트의 첫 번째 부분은 사용자 입력을 가져 와서 문제없이 MySQL 데이터베이스에 넣습니다. 파일 시스템 작업에 도달하면 약간 배 모양이됩니다. 구성 파일 옵션을 사용하지 않고 작동하게 할 수 있습니다. 일관성을 유지하고 해당 파일에서 가져오고 싶습니다.

  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

내가 댓글을 달린 줄을 타협하면 그것이 작동하고 조금 더 나아가고 오류가 발생합니다. 그러나 일단이 딸꾹질을 분류하게 한 후에는 그것을 처리 할 것입니다. 어떤 입력에 대해 감사합니다.

도움이 되었습니까?

해결책

당신의 튜플은 틀린 것입니다

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

문자열에는 3 개의 매개 변수가 있지만 2 %만 있습니다. 당신은 아마도 다음을 의미했을 것입니다.

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

(나는 폐쇄 괄호를 옮겼습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top