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

Βοήθεια για python


peg

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

Δημοσ. (επεξεργασμένο)

Καλησπέρα κι από εμένα!

 

Στα πλαίσια μιας διπλωματικής εργασίας με στατιστική ανάλυση, παίρνω από μια εταιρία δεδομένα για τη θλιπτική αντοχή ενός προϊόντος. Τα δεδομένα αυτά αποθηκεύονται σε μορφή .zs2 και μπορούν να ανοιχτούν μόνο από το πρόγραμμα που συνοδεύει τη μηχανή ελέγχου. Για να μην ταλαιπωρώ τον υπάλληλο, καθώς πρέπει να ανοιχτούν ένα-ένα και να μου τα εκτυπώσει ή να τα γράψει, μου έδωσε κάποια αρχεία να δοκιμάσω εάν βρω τρόπο να τα ανοίξω.

Ψάχνοντας, βρήκα ένα module για python που μετατρέπει αυτά τα αρχεία σε xml.

To module το βρήκα εδώ.

Ο κώδικας είναι ο παρακάτω:

 

import zs2decode.parser
import zs2decode.util

zs2_file_name = 'my_data_file.zs2'
xml_output_file = 'my_data_file.xml'

# load and decompress file
data_stream = zs2decode.parser.load(zs2_file_name)
# separate binary data stream into chunks
raw_chunks = zs2decode.parser.data_stream_to_chunks(data_stream)
# convert binary chunk data into lists of Python objects
chunks = zs2decode.parser.parse_chunks(raw_chunks)
# output as XML file
with open(xml_output_file, 'wb') as f:
    f.write( zs2decode.util.chunks_to_XML(chunks) )

 

Όπου filename έχω δοκιμάσει να βάλω το path του αρχείου, αλλά και να μεταφέρω το αρχείο στον ίδιο φάκελο με το module. Όταν το τρέχω όμως μου εμφανίζει σφάλμα:

Traceback (most recent call last):
  File "C:\Users\ΓΤ\Desktop\zs2decode-master\examples\zs2_to_xml.py", line 1, in <module>
    import zs2decode.parser
ModuleNotFoundError: No module named 'zs2decode'

Δεν έχω βγάλει κάποια άκρη με το τι συμβαίνει, όσο και αν διάβασα σε tutorials. Θα είμαι πραγματικά ευγνώμων για οποιαδήποτε βοήθεια

 

ΔΕΚΕΜΒΡΙΟΣ_2016_EPS80.zs2

Επεξ/σία από peg
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ας τα πάρουμε από την αρχή. Δε σου βρίσκει το module zs2decode που είναι απαραίτητο για αυτή τη δουλειά. Επίσης παρατηρώ ότι έχεις στο όνομα χρήστη ελληνικούς χαρακτήρες. Δοκίμασε στο C:\FAKELOSMEAGGLIKOONOMA μήπως κλωτσάει αυτό.

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Για να λέει: "ModuleNotFoundError: No module named 'zs2decode' ", σημαίνει ότι το πακέτο δεν υπάρχει στο environment που χρησιμοποιείς. 

Έχεις κάνει instal το package; Εάν ναι, σιγουρέψου ότι το έχεις εγκαταστήσει στο ίδιο environment που χρησιμοποιείς όταν τρέχεις το script. Εάν τρέχεις το script μέσα από IDE (π.χ. PyCharm), βεβαιώσου ότι στο IDE χρησιμοποιείς το ίδιο env με αυτό που έκανες install το package. 

 

Επεξ/σία από kaydi
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

what is your PYTHONPATH env var?

did you try

sys.path.append(the_dir_where_the_mod_is_located)

When a module named spam is imported, the interpreter first searches for a built-in module with that name. If not found, it then searches for a file named spam.py in a list of directories given by the variable sys.path. sys.path is initialized from these locations:

  • The directory containing the input script (or the current directory when no file is specified).
  • PYTHONPATH (a list of directory names, with the same syntax as the shell variable PATH).
  • The installation-dependent default.

πέρα από αυτά, ή κάνεις:

import zs2decode

και στον κωδικό χρησιμοποιείς 

zs2decode.parser....

zs2decode.util....

ή κάνεις relative import

from zs2decode import parser, util

 

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό πρέπει να εγκαταστήσεις και να ξανατρέξεις το script:

https://pypi.org/project/zs2decode/

@ajaxmonkey4hire

Αυτό που γράφεις δεν είναι ακριβές. Τα "parser" και "util" είναι modules, οπότε το script είναι σωστό.

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τελικά βρήκα τη λύση. Πρόσθεσα μόνο το φάκελο zs2decode στον φάκελο python36. 

Επίσης στο φάκελο του python36 πρόσθεσα και το αρχείο zs2_to_xml.py, καθώς και τα αρχεία .zs2 και δούλεψε! 

Ένα ένα φυσικά τα αρχεία και κάθε φορά αλλάζω τον κώδικα του module. 

Ευχαριστώ όλους για τις απαντήσεις σας! 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό που έκανες δουλεύει μεν, αλλά είναι ο λάθος τρόπος.

Αν χρειάζεσαι την python μονο για να μετατρέψεις τα αρχεία αυτά σε XML, ΟΚ.

Αν θες όμως να χρησιμοποιήσεις την python και για άλλα πράγματα, τότε, μεταξύ άλλων πρέπει να μάθεις πως εγκαθιστάς πακέτα (η απάντηση είναι χρησιμοποιώντας το pip).

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

8 ώρες πριν, pmav99 είπε

Αυτό που έκανες δουλεύει μεν, αλλά είναι ο λάθος τρόπος.

Αν χρειάζεσαι την python μονο για να μετατρέψεις τα αρχεία αυτά σε XML, ΟΚ.

Ναι την χρειαζόμουν μόνο για μετατροπή των αρχείων σε XML.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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