-1

私はPythonの初心者で、Pythonの変数補間の概念で問題に直面しています.引数をチェックする方法を書きましたが、行の印刷中にエラーが発生します.

   import re
   import sys
   import os.path

   def CheckArgument(argv) :
     for arg in argv :
      if (re.match('^-a$|^-b$|^-c$',argv) != 1) :
        if os.path.isfile(arg) != 1 :
            print ("file %s doesnot exists", % arg)
                            #above line is giving error
        elif re.match('-help',arg) == 1 :
             print "......."


   CheckArgument(sys.argv)
4

1 に答える 1

1

まず、整数ではなくインスタンスをre.match()返します。MatchObject表現

re.match('^-a$|^-b$|^-c$',argv) != 1

常にTrue になります。使用するだけnotです:

if not re.match('^-a$|^-b$|^-c$', argv):

と:

elif re.match('-help', arg):

,print ステートメントからを削除する必要があります。演算子は%左側の文字列に作用しますが、これは間にコンマがあってはならないことを意味します:

print ("file %s doesnot exists" % arg)

コマンドライン引数を解析しようとしているかのようです。その代わりにargparseモジュールを使用できます。

于 2013-04-26T20:46:11.633 に答える