81

argparse を使用して読み取り用にファイルを開きたい。cmd では、次のようにする必要があります: my_program.py /filepath

それが私の試みです:

parser = argparse.ArgumentParser()
parser.add_argument('file', type = file)
args = parser.parse_args()
4

6 に答える 6

215

ドキュメントをご覧ください: https://docs.python.org/3/library/argparse.html#type

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('file', type=argparse.FileType('r'))
args = parser.parse_args()

print(args.file.readlines())
于 2013-09-18T02:46:16.860 に答える
89

引数の型は文字列でなければなりません (これがデフォルトです)。したがって、次のようにします。

parser = argparse.ArgumentParser()
parser.add_argument('filename')
args = parser.parse_args()
with open(args.filename) as file:
  # do stuff here
于 2013-09-18T02:40:10.270 に答える
-2

-hこの実装により、「ファイル名」パラメーターをオプションにすることができ、ユーザーがor--help引数を入力した場合に簡単な説明を与えることができます。

parser = argparse.ArgumentParser(description='Foo is a program that does things')
parser.add_argument('filename', nargs='?')
args = parser.parse_args()

if args.filename is not None:
    print('The file name is {}'.format(args.filename))
else:
    print('Oh well ; No args, no problems')
于 2016-07-13T09:25:11.023 に答える