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()
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
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()
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
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())