Προς το περιεχόμενο

Python + Unix


OneDreamCloser

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια χαρα σε ολους,

 

λοιπον, εχω ενα unix script με τη βοηθεια του οποιου

καλω διαφορους κωδικες που θελω,

οταν θελω να καλεσω ομως ενα python script

( που υπολογιζει και θελω να επιστρεφει μια list, το μεγεθος της οποιας δε γνωριζω προκαταβολικα )

θελω να επιστρεφω το αποτελεσμα του

σε ενα array στο unix script

 

καμια ιδεα για το πως μπορω να το κανω αυτο ?

 

thanx

Δημοσ.

Δεν υπάρχει unix script. Υπάρχει το πρόγραμμα bash που παίρνει τον κώδικα σου και τον εκτελεί, όμως υπάρχουνε και αλλα όπως πχ ksh, csh, zsh, όπου εκεί ο κώδικας ίσος να είναι αρκετά διαφορετικός στην μορφή του.

 

Όπως και να έχει, το πρόγραμμα στην python μπορεί να γραφει τα αποτελέσματα τις λίστας στην κονσόλα (standard output για να χρησιμοποιήσω λίγη ορολογία), και μετά μπορείς να γράψεις από bash:

 

>
for x in $( arxeio.py arg1 arg2 );
echo x: $x;
done

Όπου θα εκτελέσει το arxeio.py με arguments arg1, arg2, θα διαβάσει την έξοδο του προγράμματος (δηλαδή την λίστα που έγραψες), και ένα ένα θα σου δώσει τα στοιχεια τις λίστας.

Δημοσ.

Αν εννοείς μέσω του exit code που επιστρέφεται στο περιβάλλον κλήσης, όχι, δε γίνεται. Μόνο ένας ακέραιος μπορεί να αποθηκευθεί εκεί, όχι ολόκληρη λίστα ή άλλη δομή δεδομένων.

 

Θα πρέπει να γίνει ανταλλαγή δεδομένων με κάποιον άλλον τρόπο. Π.χ.:

1. Μέσω του stdout που πρότεινε ο φίλος

2. Μέσω named pipe, έχοντας καλέσει πιο πριν το πρόγραμμα python και βάζοντάς το να τρέχει στο υπόβαθρο

3. Γράφοντας από το python prog σου ένα αρχείο με τα δεδομένα που θέλεις (μπορεί να γραφτεί στο /dev/shm για μεγαλύτερη ταχύτητα) διαβάζοντάς το τη στιγμή ακριβώς που θέλεις από το shell script

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...