1

簡単なスクリプトを実行しようとすると、for ループで以下のエラーがスローされます。

WASX7017E: Exception received while running file "/abc/websphere/wasad/createusers.py"; 
exception information: com.ibm.bsf.BSFException: exception from Jython:
Traceback (innermost last):
File "<string>", line 22, in ?
AttributeError: __getitem__

filename=sys.argv[0]
file_read= open( filename)   ---- this is line 22
for row in file_read:

この理由を教えてください。

ここで私のコードを見つけることができます、

  import sys

  filename="/usr/websphere/onefolder/Userlist.txt"
  fileread = open(filename, 'r')
  for row in fileread:
     column=row.strip().split(';')
     user_name=column[0]
     pass_word=column[1]
     AdminTask.createUser(['-uid',user_name, '-password', pass_word, '-confirmPassword',   pass_word])
     AdminTask.mapUsersToAdminRole(['-roleName','Administrator','-userids',user_name])
     AdminTask.addMemberToGroup('[-memberUniqueName user_name,o=defaultWIMFileBasedRealm -groupUniqueName cn=webarch,o=defaultWIMFileBasedRealm]')

  fileread.close()

  AdminConfig.save()

  print 'Saving Configuration is completed'
4

1 に答える 1

1

ファイル内の各行を反復処理したいようです。Pythonのopenメソッドはファイル オブジェクトを返します。ファイル内の各行を反復処理する場合は、readlinesファイルの内容を取得するために呼び出してから、それをループする必要があります。

これはうまくいくはずです:

import sys

filename="/usr/websphere/onefolder/Userlist.txt"
fileread = open(filename, 'r')

filelines = fileread.readlines()  

for row in filelines:
   column=row.strip().split(';')
   user_name=column[0]
   pass_word=column[1]
   AdminTask.createUser(['-uid',user_name, '-password', pass_word, '-confirmPassword',   pass_word])
   AdminTask.mapUsersToAdminRole(['-roleName','Administrator','-userids',user_name])
   AdminTask.addMemberToGroup('[-memberUniqueName user_name,o=defaultWIMFileBasedRealm -groupUniqueName cn=webarch,o=defaultWIMFileBasedRealm]')

fileread.close()

AdminConfig.save()

print 'Saving Configuration is completed'
于 2013-02-01T17:40:07.717 に答える