Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-02-2016, 18:33   #1
kata00
Junior Member
 
Iscritto dal: Feb 2016
Messaggi: 17
[Python] oppure [/bin/bash] per automatizzare una lista e una priorità

Ciao a tt,
sn nuovo del forum e sto imparando da meno di un anno sia linux che python.
Vi chiedo aiuto perchè nn saprei da dove cominciare e che linguaggio utilizzare.
Spiego cosa vorrei realizzare:
Poniamo che ho 3 programmi in python che svolgono qualcosa: a.py b.py e c.py
vorrei realizzare un programma che, avviato prima a e poi b e poi c, metta in lista i vari (a b c) e attenda il termine di a prima di eseguire b e, poi, di b prima di eseguire c.

Se dovessi azzardare penserei in python usando while true come listener e un "count" come variabile.... bo... brancolo nel buio
Che ne pensate?
Mi date qualche input?
Grazie
kata00 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2016, 18:51   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Cosa intendi con questo: "metta in lista i vari (a b c)"?
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2016, 23:39   #3
kata00
Junior Member
 
Iscritto dal: Feb 2016
Messaggi: 17
Ciao, grazie per l'interessamento
Provo a spiegarlo in altro modo (io lo immagino così...)

Descrizione:
File Programma Master (il prog che vorrei realizzare)
File Programmi Slave :
----------------------------------File Programma A durata 1 minuto
----------------------------------File Programma B durata 2 minuto
----------------------------------File Programma C durata 3 minuto

Svolgimento:
Avvio il Prog Master che rimane in ascolto
All'occorrenza avvio i Prog Slave che vengono attuati in ordine, così come li ho avviati, dal Prog Master che li pone in una coda e li avvia uno alla volta.

Esempio:
Il Prog Master è in ascolto
Avvio A, dopo pochi secondi avvio C e dopo pochi secondi avvio B.
Il Prog Master esegue A e mette in coda, in ordine, prima C e poi B.
Prog A dura 1 minuto.
Passato il minuto, A restituisce al Prog Master che ha terminato.
Il Prog Master guarda in lista, si ritrova trava C e lo avvia.
C dura 3 minuti.
Finito C avvia B.
Ovviamente il Prog Master rimane per tutto il tempo in ascolto e pone eventuali ulteriori Slave in coda di esecuzione (dopo il B che è ultimo)

Il concetto della playlist...
Spero di essere stato chiaro.
Grazie
kata00 è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2016, 06:14   #4
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
In tal caso potresti sfruttare il modulo subprocess per lanciare programmi esterni (anche se essi stessi in Python) e controllarne l'esecuzione.

Se, invece, i programmi esterni possono essere scritti soltanto in Python, potresti sfruttare il modulo threading per eseguirli in thread diversi (e sempre controllandone l'esecuzione) ma su un solo core, oppure se vuoi sfruttare tutti i core che hai a disposizione ci sarebbe il modulo multiprocessing.

Come vedi, dipende tutto da come pensi di orchestrare i "programmi" da eseguire.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2016, 08:48   #5
kata00
Junior Member
 
Iscritto dal: Feb 2016
Messaggi: 17
Grazie mille per gli input
Mi metto a studiare e provo a capire meglio come funzionano le alternative che mi hai suggerito.
Il subprocess.call l'ho già incontrato nell'interfacciare un pulsante fisico che faceva lo shutdown del sistema ma a primo sguardo, leggo che subprocess input è vulnerabile di shell injection....

Per il momento ancora grazie
kata00 è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2016, 11:17   #6
kata00
Junior Member
 
Iscritto dal: Feb 2016
Messaggi: 17
Aggiornamento...

Ho scoperto ed imparato l'uso delle liste (...queste sconosciute ) (bellissime...!!)
vorrei sviluppare l'interazione tra Master e Slave così:
il Master rimane in loop con una lista vuota e una funzione che esegue script (mutevoli);
ogni Slave si aggiunge in lista e passa al Master gli script da eseguire; alla fine dello script si cancella dalla lista;

Che ne pensi come architettura dei programmi?
Dovrebbe essere uno scambio di variabili e sto cercando di studiare variabili locali e globali.
per il momento nn funziona... ma potrebbe funzionare??
kata00 è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2016, 18:35   #7
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Se rimani all'interno di Python (e quindi con gli "slave" che sono semplici moduli Python, importati alla bisogna), allora quel che scrivi si può implementare molto facilmente.

Anche il passaggio di variabili diventa veramente banale, e funziona senza problemi. Ma devi cominciare a buttare giù un po' di codice, e mostrare concretamente che problemi hai.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2016, 09:29   #8
kata00
Junior Member
 
Iscritto dal: Feb 2016
Messaggi: 17
Ciao Mauro, io ci provo...
si...nn sono convinto neanche io di ciò che ho scritto
file principale:
Codice:
import subprocess

lista=["listavuota"]

i=0

def accoda():
	lista.append(nomefile)
	print "aggiunto alla lista", nomefile

def rimuovi():
	del lista[1]
	print "rimosso dalla lista", nomefile

def processa():
	subprocess.call(argomento)
	print "sto processando", lista[1]

def esegui():
	if (i> 1):
		processa()
		print "in attesa %d argomenti da processare" % i
		processa.wait()
		rimuovi()

accoda()
esegui()
file a:
Codice:
import time

nomefile=a

def prova():
	["echo", "sto eseguendo programma a"]
	time.sleep(10)

argomento=prova()
Ho cercato una soluzione "universale" senza dover dichiarare in maniera fissa cosa fa il file a e i successivi b,c, d...ecc ma forse questa architettura nn si può fare.
Nn l'ho provato ma credo nn funzioni
In più, la funzione accoda() nn credo sia sempre in ascolto
kata00 è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2016, 19:53   #9
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Infatti non funziona, e purtroppo si vede che hai ancora molto da lavorare per imparare a programmare, prima di cimentarti con problemi di questa portata.

Prova a dare un'occhiata ai libri che ho in firma e vedi se riesci a completarli (ci sono anche degli esercizi).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Meta potrebbe aver mostrato in anticipo ...
Bicicletta elettrica L26 a 474,05€: e-bi...
NVIDIA RTX PRO 5500 Blackwell: 84 GB di ...
Sei alla ricerca di un buon gruppo di co...
Blizzard annuncia un nuovo StarCraft: la...
Ecobonus al 65%: il governo valuta il ri...
Biscotti fatti con bottiglie di plastica...
SIHOO B100 a 161€ e B100 Pro a 209€: sed...
ClickFix dilaga: un finto captcha e un c...
HP Envy 6520e a 63€: stampante multifunz...
Diablo diventa una serie animata Netflix...
iPhone Duo porterà Apple al 25% d...
TSMC brucia le tappe: la produzione dei ...
Lexar ARES, SSD da 1TB a 156,74€: PCIe G...
Un'altra novità in arrivo da Samsung: ec...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:41.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v