web-dev-qa-db-fra.com

Comment ouvrir le fichier en utilisant argparse?

Je veux ouvrir un fichier en lecture avec argparse. Dans cmd cela doit ressembler à: my_program.py/filepath

C'est mon essai:

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

Le type de l'argument doit être chaîne (qui est par défaut de toute façon). Alors faites comme ça:

parser = argparse.ArgumentParser()
parser.add_argument('filename')
args = parser.parse_args()
with open(args.filename) as file:
  # do stuff here
59
wim

Consultez la documentation: http://docs.python.org/2/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()
167
ilent2

Pour que le fichier se ferme normalement, vous pouvez combiner argparse.FileType avec l'instruction "with"

# ....

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

with args.file as file:
    print file.read()

--- mise à jour ---

Oh, @Wernight a déjà dit que dans les commentaires

22
Ming

Je vais juste ajouter l'option d'utiliser pathlib:

import argparse, pathlib

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

with args.file.open('r') as file:
    print(file.read())
0
Thomas Ahle