Bonjour,
Je suis un peu nouveau en programmation et j'essaie d'écrire un script qui doit interragir avec le shell de Linux.
L'idée générale est d'aller compter le nombre de ligne de plusieurs fichiers, contenus dans un même dossier, et de l'afficher dans un fichier.
J'ai parcouru le forum et j'ai vu que la commande os.system permet d'interragir avec le shell mais je n'arrive pas à l'encapsuler pour l'incorporer dans des fonctions.
Prenons un cas concret avec le script que j'ai écrit, il n'est pas fini mais il permet de comprendre le problème que je rencontre.
Voilà, dans ce cas-ci, j'essaie d'indiquer le chemin d'accès du shell dans la fonction reads_count pour que la fonction cherche le fichier à traiter que j'aurai indiquer, ainsi que le fichier de sortie qu'il doit créer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 # -*- coding: utf8 -*- ######"importation des modules ######## from os import system ############# écriture des fonctions ########## def reads_count(region, sample, data): "count the number of reads for each region" n = 0 for line in fd: n += 1 nbre_reads = str(region) + "," + str(n) + "\n" fd.write(nbre_reads) ####### mise en route du programme ######### sample = raw_input(os.system("taper le chemin du sample à analyser")) data = raw_input(os.system("taper le chemin et le fichier à créer")) region = raw_input(os.system("taper la region à analyser")) fs = open(sample, 'r') fd = open(data, 'w') try: reads_count(region, sample, data) print(nbre_reads) finally: fs.close() fd.close()
Malheureusement ceci ne fonctionne pas. J'ai essayé de simples attributions comme path = os.system("pwd"). Ceci applique la commande pwd du shell mais quand je tape path, python m'indique 0.
Avez-vous une idée de ce que je pourrais faire pour rendre ma fonction valide?
Un grand merci d'avance![]()
Partager