Salut,
Pour il faut penser fonction. Comme par exemple:
1 2 3 4 5 6 7 8 9 10 11
| def read_news(path, filename):
df = pd.read_table(
# Build the absolute path to the news file
os.path.join(path, filename),
delimiter=';',
parse_dates=[0],
infer_datetime_format=True,
)
return df
news_df = read_news('C:/Users/Demonstrator/Downloads', 'New1.csv') |
A adapter. Si les news sont toujours au même endroit, autant ne conserver qu'un seul argument par exemple.
Pour ce qui est de pouvoir lancer son script en ligne de commande, la méthode la plus simple est encore de passer par le module 'sys'. L'idée est de faire quelque chose comme:
python monscript.py path filename
'filename' est un argument.
On peut faire cela comme ceci (à mettre à la fin du script):
1 2 3 4 5
| if __name__ == '__main__':
import sys
news_df = read_news(sys.argv[1], sys.argv[2]) |
Toute la magie se trouve dans 'sys.argv' qui contient les arguments passés lorsqu'on fait dans une console 'python monscript.py arg1 arg2...'. Il faut savoir qu'il y a toujours au moins un argument de passé, même si on n'en indique pas, qui est le chemin où se trouve python. Ainsi le premier argument passé par l'utilisateur (arg1) sera en fait le deuxième dans la liste (ou tuple je ne sais plus) sys.argv, d'où sys.argv[1] pour récupérer le chemin.
C'est très basique ici dans cet exemple. Pas de gestion des erreurs. On peut aller plus loin en utilisant un module pour gérer les arguments bien mieux qu'en le faisant à la "main" comme ici. Le module argparse est très bien pour cela.
Ju
Partager