Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Python] Devo avviare un programma da riga di comando

    Ciao ragazzi

    ho la necessità di lanciare un applicativo .exe esattamente come faccio da cmd di Windows attraverso il seguente comando:


    C:\Programmi\CANape 6.1\Exec>canape32.EXE -C ..\Project\CONF.cna ..\Project\CANape.ini -U


    come posso procedere?

    grazie mille
    http://www.sd-studio.it - L'ingegneria nel web design

  2. #2
    Non ho capito niente (compreso cosa c'entri Python).
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  3. #3

    ciao

    beh ho la necessità di lanciare un applicativo installato sotto windows attraverso un comando python

    fai conto come se volessi lanciare notepad.exe attraverso un comando dalla shell di python...spero sia più chiaro....
    http://www.sd-studio.it - L'ingegneria nel web design

  4. #4
    Ok ora è più chiaro.
    Hai a disposizione varie possibilità tra cui os.system, os.popen e le varie funzioni offerte dal modulo subprocess (utile ad esempio se avessi la necessità di comunicare con l'stdin e l'stdout del processo).
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    2,620
    Dalla documentazione del modulo os, oltre a os.system, os.popen e le altre cose suggerite da billiejoex, ecco un po' di altre funzioni (simili fra loro, lo so)

    execl(file, *args)

    Execute the executable file with argument list args, replacing the
    current process.

    execlp(file, *args)

    Execute the executable file (which is searched for along $PATH)
    with argument list args, replacing the current process.

    execv(...)

    Execute an executable path with arguments, replacing current process.

    path: path of executable file
    args: tuple or list of strings


    execvp(file, args)

    Execute the executable file (which is searched for along $PATH)
    with argument list args, replacing the current process.
    args may be a list or tuple of strings.

  6. #6
    Originariamente inviato da Simosito
    Dalla documentazione del modulo os, oltre a os.system, os.popen e le altre cose suggerite da billiejoex, ecco un po' di altre funzioni (simili fra loro, lo so)
    No, quelle sono troppo di basso livello e praticamente mai usate direttamente se non da moduli come subprocess, appunto, che astraggono il tutto ad un livello più elevato per l'utente.
    In pratica tutto il management dei processi - dovrebbe - quasi sempre essere fatto esclusivamente con subprocess senza utilizzare direttamente os.system, os.spawn*, os.popen, popen2.* o commands.* i quali hanno un livello di complessità di gestione sicuramente più elevato.

    Per quello che (da quanto ho capito) dovrebbe fare lui dovrebbe essere sufficiente subprocess.Popen. Esempio:

    >>> import subprocess
    >>> subprocess.Popen('notepad.exe')
    <subprocess.Popen object at 0x00B83210>
    >>>

    ...lancia notepad.exe disimpegnando la shell.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    2,620
    Wow, ho imparato qualcosa di nuovo.
    Grazie billiejoex!

  8. #8

    ciao

    innanzitutto grazie ad entrambi...

    diciamo che la notazione con gli *args mi è più chiara poichè come vedete devo lanciare un .exe seguito da alcune opzioni

    però seguendo i vostri consigli e volendo untilizzare i comandi:

    >>> import subprocess
    >>> subprocess.Popen('notepad.exe')

    la mia richiesta di lanciare questa applicazione:

    C:\Programmi\CANape 6.1\Exec>canape32.EXE -C ..\Project\CONF.cna ..\Project\CANape.ini -U

    come si trasformerebbe il codice?

    scusate la mia niubbezza ma python lo conosco davvero poco....

    grazie mille
    http://www.sd-studio.it - L'ingegneria nel web design

  9. #9
    Basta che sostituisci "notepad.exe" con quella stringa.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.