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

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

Δημοσ.

Καλησπέρα,

 

Έχω γράψει ένα script και έχω ένα πρόβλημα με μία βιβλιοθήκη που χρησιμοποιώ. Συγκεκριμένα την pybrain.

 

Μία από τις συναρτήσεις που έχει, όταν την καλείς σου τυπώνει αυτόματα κάποια αποτελέσματα. Το θέμα είναι ότι εγώ δε τα χρειάζομαι και είναι πάρα πολλά. Με αποτέλεσμα μετά από κανένα 15λεπτο που τρέχει το script να κολλάει το παράθυρο από τα πολλά print.

 

Υπάρχει τρόπος να καλέσω μια συνάρτηση και να μη τυπώνει τα αποτελέσματα που επιστρέφει;

Δημοσ.

αν εκτελέσεις το script (σε UNIX) ως εξής, η οθόνη δεν θα εμφανίσει κάτι:

$ script > /dev/null

 

Εναλλακτικά, μπορείς να στείλεις τις "εκτυπώσεις" σε αρχείο:

$ script > filename

Δημοσ.

αν εκτελέσεις το script (σε UNIX) ως εξής, η οθόνη δεν θα εμφανίσει κάτι:

$ script > /dev/null

 

Εναλλακτικά, μπορείς να στείλεις τις "εκτυπώσεις" σε αρχείο:

$ script > filename

 

Σε windows υπάρχει τρόπος να γίνει; Έχω linux πάνω στο laptop αλλά θα πρέπει να περάσω όλες τις βιβλιοθήκες και λέω μήπως το γλιτώσω. 

 

Ευχαριστώ :)

Δημοσ.

Εννοείς ότι σου βγάζει MemoryError ή κάτι άλλο; Γιατί το κολλάει το παράθυρο και το γέμισμα RAM δεν συνδέονται απαραίτητα μεταξύ τους.

 

Υπάρχει τρόπος να καλέσω μια συνάρτηση και να μη τυπώνει τα αποτελέσματα που επιστρέφει;

 

Ανάλογα. Ίσως να υπάρχει κάποιο command-line option που να καθορίζει το verbosity level, μπορεί να υπάρχει κάποιο configuration option (πχ σε ένα αρχείο ρυθμίσεων), μπορεί η συνάρτηση να παίρνει κάποιο argument που να καθορίζει το αν θα υπάρχουν τα print κτλ. Εν ολίγοις δηλαδή χρειάζεται να δώσεις περισσότερες πληροφορίες.

 

Αν δεν υπάρχει τίποτα, ανοίγεις το αρχείο κώδικα της συνάρτησης και κάνεις comment out τα print που δε θες.

 

ps. Ο χρόνος που παίρνει μπορεί να είναι τόσο μεγάλος εξαιτίας των print. Είναι γενικά αργό το printing. Νομίζω είναι θέμα κονσόλας αυτό και όχι python.

Δημοσ.

Εννοείς ότι σου βγάζει MemoryError ή κάτι άλλο;

Δε βγάζει κάτι άλλο. Απλά κολλάει το παράθυρο. Τυπώνει ίσως και πάνω από εκατομμύριο γραμμές με αποτέλεσμα να αρχίσει να πηγαίνει όλο και πιο αργά μέχρι να βγάλει δεν ανταποκρίνεται το παράθυρο

Δημοσ.

Αν τελειώσει η μνήμη RAM λόγω μεγάλου αριθμού python objects, θα σου έβγαζε MemoryError και θα τελείωνε η λειτουργία του script. Πχ δοκίμασε να τρέξεις το

list(range(1000000000000000))

Τσέκαρε αυτά που έγραψα στο προηγούμενο post και δες πως μπορείς να κάνεις redirect to file στα windows.

Δημοσ.

Αν τελειώσει η μνήμη RAM λόγω μεγάλου αριθμού python objects, θα σου έβγαζε MemoryError και θα τελείωνε η λειτουργία του script. Πχ δοκίμασε να τρέξεις το

list(range(1000000000000000))

Τσέκαρε αυτά που έγραψα στο προηγούμενο post και δες πως μπορείς να κάνεις redirect to file στα windows.

 

Λοιπόν, με έσωσες. Σύμφωνα με αυτά που έγραψες στο προηγούμενο μήνυμα, έψαξα το αρχείο της βιβλιοθήκης και βρήκα το κομμάτι του κώδικα που τύπωνε. Για αρχή δοκίμασα να το κάνω comment αλλά μου έβγαζε άλλο σφάλμα. Το έψαξα και είχε κάπου σημείωση για μία παράμετρο verbose όπου έκανε ακριβώς αυτό που ήθελα. Δεν τυπώνει τίποτα. Με αποτέλεσμα να τρέχει το script μου κανονικά.

 

Ευχαριστώ πάρα πολύ!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...