2

目的: 文字列に接頭辞または接尾辞を追加します。

問題: ファイルへの出力が変更され、入力が [''] で囲まれます。(例: ['接頭辞']単語、または単語['接尾辞'])

質問: 入力文字列を囲むブラケットと一重引用符を削除するにはどうすればよいですか?

コード:

    parser.add_argument('-p', dest='prefix', metavar='[Prefix]', nargs=1, help="Add a user     defined prefix")
    parser.add_argument('-s', dest='suffix', metavar='[Suffix]', nargs=1, help="Add a user     defined suffix")

#Adding a prefix to the string
    elif args.prefix:
        s = str(args.prefix)
        print s
        def addprefix(n):
            p = s + n
            args.outfile.write(p)
        myline = args.infile.readline()
        while myline:
            addprefix(myline)
            myline = args.infile.readline()
        args.infile.close

    #Adding a suffix to the string
    elif args.suffix:
        s = str(args.suffix)
        def addsuf(n):
            p = str(n.strip()+s+"\n")
            args.outfile.write(p)
        myline = args.infile.readline()
        while myline:
            addsuf(myline)
            myline = args.infile.readline()
        args.infile.close

補足: これは、はるかに大きなプログラムからのコードの抜粋です。

前もって感謝します。

4

1 に答える 1

3

問題はnargs=1. これは、リストを作成したいことを argparse に伝えます。代わりに、nargs=1ビットを取り外して入れaction='store'ます。デフォルトを指定することもできます。

parser.add_argument('-p', dest='prefix', 
                    metavar='[Prefix]',action='store',default='',
                    help="Add a user defined prefix")
于 2013-01-07T16:44:05.193 に答える