IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Problème démarrant fichier a distance


Sujet :

Réseau/Web Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 53
    Points : 26
    Points
    26
    Par défaut Problème démarrant fichier a distance
    BOnjour à tous de nouveau.
    Il s'agit toujours d'un sujet sur le programme du précédent. J'ai décidé d'ajouter une fonction qui me permet de lancer sur mon ordi un fichier de l'ordinateur distant (fonction start). Mon problème c'est que lorsque j'utilise ma fonction pour un fichier du répertoire courant, celle-ci me dit :
    Nom : erreur2.PNG
Affichages : 347
Taille : 32,4 Ko
    Remarque : Lorsque j'éxécute cette fonction pour un fichier python ou en rapport avec python, celui-ci se lance.

    Le peu de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if msg_recu[0] == "start" :
    	    		p = subprocess.Popen('start ' + msg_recu[1], stdout=subprocess.PIPE, shell=True)
        			out, error = p.communicate()
    	    	else:
    	    		pass
    merci pour vos réponses

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par wildshadow956 Voir le message
    Mon problème c'est que lorsque j'utilise ma fonction pour un fichier du répertoire courant, celle-ci me dit :
    Si Windows ne trouve pas le fichier, il faut d'abord vérifier que la commande passée à Popen est bien celle attendue avec par exemple un print('/%s/' % ('start ' + msg_recu[1])).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Si Windows ne trouve pas le fichier, il faut d'abord vérifier que la commande passée à Popen est bien celle attendue avec par exemple un print('/%s/' % ('start ' + msg_recu[1])).

    - W
    J'ai vérifié la commande envoyée est la bonne.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par wildshadow956 Voir le message
    J'ai vérifié la commande envoyée est la bonne.
    Alors, il faut s'assurer que le répertoire par défaut est bien celui qu'on croit:
    print (os.getcwd()) et qu'il contient bien, via os.path.exists(...), le fichier que Windows ne trouve pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Alors, il faut s'assurer que le répertoire par défaut est bien celui qu'on croit:
    print (os.getcwd()) et qu'il contient bien, via os.path.exists(...), le fichier que Windows ne trouve pas.

    - W
    J'ai testé et il me renvoie un FALSE. mais quand je fais un print(os.getcwd()), il me renvvoie C:\ et non le répertoire ou je suis.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par wildshadow956 Voir le message
    J'ai testé et il me renvoie un FALSE. mais quand je fais un print(os.getcwd()), il me renvvoie C:\ et non le répertoire ou je suis.
    os.getcwd() retourne le répertoire par défaut du programme.
    A vous de faire en sorte que ce soit "le bon" (celui qui contient le fichier) via un chemin absolu ou en modifiant le répertoire par défaut avec os.chdir(...).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2017
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    os.getcwd() retourne le répertoire par défaut du programme.
    A vous de faire en sorte que ce soit "le bon" (celui qui contient le fichier) via un chemin absolu ou en modifiant le répertoire par défaut avec os.chdir(...).

    - W
    C 'est que j'ai fait à chaque utilisation de cd :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    if msg_recu[0] == "cd":
    	    			if msg_recu[1] != "..":
     
    	    				complete_tab = copy.deepcopy(msg_recu)
    	    				complete_tab.remove(complete_tab[0])
     
    	    				if "C:\\" in complete_tab[0] :
    	    					if len(complete_tab) >= 1 :
    	    						path = " ".join(complete_tab)
    	    						if os.path.isdir(path):
    	    							location = path
    	    							os.chdir(location)
     
    	    				elif len(msg_recu) > 2:
    	    					folder = copy.deepcopy(msg_recu)
    	    					folder.remove(folder[0])
    	    					folder = " ".join(folder)
    	    					path = location+ '\\' + folder
     
    	    					if os.path.isdir(path):
    	    						location+='\\' + folder
    	    						os.chdir(location)
    	    				else:
    	    					path = location+ '\\' + msg_recu[1]
    		    				if os.path.isdir(path):
    			    				location+='\\' + msg_recu[1]
    			    				os.chdir(location)
    	    			elif msg_recu[1] != "":    				
    	    				location = location.split("\\")
    	    				location.remove(location[len(location) - 1])
    	    				location = "\\".join(location)
    	    				os.chdir(location)
    	    			else:	
    	    				pass
    	    	if msg_recu[0] == "start" :
     
    	    		p = subprocess.Popen('start '+ msg_recu[1], stdout=subprocess.PIPE, shell=True)
        			out, error = p.communicate()
        			print(os.path.exists(os.getcwd()+'\\'+msg_recu[1]))
        			print(os.getcwd())
    	    	else:
    	    		pass

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par wildshadow956 Voir le message
    C 'est que j'ai fait à chaque utilisation de cd :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    if msg_recu[0] == "cd":
    	    			if msg_recu[1] != "..":
     
    	    				complete_tab = copy.deepcopy(msg_recu)
    	    				complete_tab.remove(complete_tab[0])
     
    	    				if "C:\\" in complete_tab[0] :
    	    					if len(complete_tab) >= 1 :
    	    						path = " ".join(complete_tab)
    	    						if os.path.isdir(path):
    	    							location = path
    	    							os.chdir(location)
     
    	    				elif len(msg_recu) > 2:
    	    					folder = copy.deepcopy(msg_recu)
    	    					folder.remove(folder[0])
    	    					folder = " ".join(folder)
    	    					path = location+ '\\' + folder
     
    	    					if os.path.isdir(path):
    	    						location+='\\' + folder
    	    						os.chdir(location)
    	    				else:
    	    					path = location+ '\\' + msg_recu[1]
    		    				if os.path.isdir(path):
    			    				location+='\\' + msg_recu[1]
    			    				os.chdir(location)
    	    			elif msg_recu[1] != "":    				
    	    				location = location.split("\\")
    	    				location.remove(location[len(location) - 1])
    	    				location = "\\".join(location)
    	    				os.chdir(location)
    	    			else:	
    	    				pass
    	    	if msg_recu[0] == "start" :
     
    	    		p = subprocess.Popen('start '+ msg_recu[1], stdout=subprocess.PIPE, shell=True)
        			out, error = p.communicate()
        			print(os.path.exists(os.getcwd()+'\\'+msg_recu[1]))
        			print(os.getcwd())
    	    	else:
    	    		pass
    Vous vous rendez compte que çà ne fait pas ce que vous pensez...
    Donc vous avez à utiliser la commande magique "print" pour voir si les os.chdir sont cohérents avec les requêtes et comprendre pourquoi vous êtes en C:\ plutôt qu'ailleurs.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Delphi 3] Problème avec fichier ressource .RES
    Par delphim dans le forum EDI
    Réponses: 2
    Dernier message: 28/06/2005, 18h11
  2. [Servlet] Probléme écriture fichier
    Par hedgehog dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/05/2005, 15h17
  3. Problème lecture fichier en C++
    Par cali1983 dans le forum C++
    Réponses: 17
    Dernier message: 20/05/2005, 09h36
  4. Problème ouverture fichier par double clic...
    Par sankookai dans le forum MFC
    Réponses: 4
    Dernier message: 11/05/2005, 09h13
  5. Problème avec fichier texte
    Par jpdelx dans le forum ASP
    Réponses: 7
    Dernier message: 13/11/2003, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo