Τα πάντα για την Python

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 14 Δεκ 2013, 14:46

έγραψε:Γιατί όμως οι πλειάδες ( tuples ), είναι πιο γρήγορες από τις λίστες ( lists ) ;;

http://lmgtfy.com/?q=why+tuples+are+faster+than+lists :P

Μην σε απασχολεί όμως. Αν πρέπει να χρησιμοποιήσεις λίστα, θα χρησιμοποιήσεις λίστα.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Tassos10 » 15 Δεκ 2013, 01:01



Το ήξερα αυτό.. :P ^_^

Εντάξει σε ευχαριστώ πολύ πάντως! :clap:
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 472
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Tassos10 » 18 Δεκ 2013, 12:54

Εγγραφές στην python σε σειριακά αρχεία πως κάνουμε;
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 472
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό M.Jackson » 18 Δεκ 2013, 13:44

Tassos10 έγραψε:Εγγραφές στην python σε σειριακά αρχεία πως κάνουμε;


Μορφοποιημένος Κώδικας: Επιλογή όλων
file = open("text.txt", "w")
file.write("ubuntu-gr.org")
file.close()
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Tassos10 » 18 Δεκ 2013, 14:17

M.Jackson έγραψε:
Μορφοποιημένος Κώδικας: Επιλογή όλων
file = open("text.txt", "w")
file.write("ubuntu-gr.org")
file.close()


Σε ευχαριστώ πολύ. :)

Μόνο να σε ρωτήσω λίγο,
Μορφοποιημένος Κώδικας: Επιλογή όλων
file = open("text.txt", "w")

file = open ανοίγω το αρχείο, το "text.txt" υποθέτω πως είναι το όνομα και ο τύπος του αρχείου ( .txt ) το "w" όμως;

Επίσης να υποθέσω πως με το
Μορφοποιημένος Κώδικας: Επιλογή όλων
file.write("μπλά μπλά")
μπορείς να γράψεις ότι θέλεις μέσα στο αρχείο και με το file.close() κλίνεις το αρχείο.

Για να είμαι απόλυτα ειλικρινής μαζί σου, ( και ξανά λέω πως σε ευχαριστώ πολύ για το άμεσο ενδιαφέρον και βοήθεια ), αλλά αυτά τα ήξερα περίπου, απλώς δεν ήξερα αν μπορώ έτσι να δημιουργήσω και σειριακά αρχεία, ή βασικά να κάνω σειριακή επεξεργασία πάνω στα αρχεία αυτά;

π.χ. να βρω πόσες φορές εμφανίζεται μέσα στο αρχείο το γράμμα "u" ;
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 472
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό kamar » 18 Δεκ 2013, 17:02

έγραψε:file = open ανοίγω το αρχείο, το "text.txt" υποθέτω πως είναι το όνομα και ο τύπος του αρχείου ( .txt ) το "w" όμως;


Το "w" προφανώς για write, "r" για read κλπ.
Δες την τεκμηρίωση.
Μια βασική παράμετρος είναι το encoding, που πρέπει να δηλώνεται utf8, ειδικά αν γράφεις και για windows.
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 14.04 trusty 3.13.0-91-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD A6-5400K APU with Radeon HD Graphics ‖ RAM 3347 MiB ‖ ASUS F2A55-M LK2 PLUS
4 Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7540D] [1002:9991] {radeon}
5 eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09)
Άβαταρ μέλους
kamar
punkTUX
punkTUX
 
Δημοσιεύσεις: 166
Εγγραφή: 10 Μάιος 2008, 20:24
Τοποθεσία: Χανιά
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 18 Δεκ 2013, 18:34

@Tassos10
Συνήθως είναι καλύτερα όταν παίζεις με files να χρησιμοποιείς το with statement το οποίο σου εξασφαλίζει ότι το αρχείο θα κλείσει στο τέλος: http://getpython3.com/diveintopython3/files.html#with

Δεν είμαι σίγουρος τι ακριβώς εννοείς σειριακά αρχεία. Τι θέλεις να κάνεις; Ή μήπως εννοείς να κάνεις serialization κάποια python objects, αν και δεν νομίζω να έχεις αυτό στο μυαλό σου.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό kamar » 18 Δεκ 2013, 21:47

έγραψε:π.χ. να βρω πόσες φορές εμφανίζεται μέσα στο αρχείο το γράμμα "u" ;


Πολύ απλά, όταν διαβάσεις τα δεδομένα του αρχείου, απλώς έχεις πλέον ένα string, με όλες τις ιδιότητες του.
Κώδικας: Επιλογή όλων
>>> fh = open('epixirisis.txt', 'r', encoding='utf8')
>>> data = fh.read()
>>> fh.close()
>>> data.count('ΜΠΟΥ')
4
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 14.04 trusty 3.13.0-91-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD A6-5400K APU with Radeon HD Graphics ‖ RAM 3347 MiB ‖ ASUS F2A55-M LK2 PLUS
4 Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7540D] [1002:9991] {radeon}
5 eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09)
Άβαταρ μέλους
kamar
punkTUX
punkTUX
 
Δημοσιεύσεις: 166
Εγγραφή: 10 Μάιος 2008, 20:24
Τοποθεσία: Χανιά
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Tassos10 » 19 Δεκ 2013, 00:31

Μάλιστα, δηλαδή η σωστή μορφή είναι :
μεταβλητή = open('όνομα_αρχείου.επέκταση', 'τι_θέλω_να κάνω', encoding='utf8')

@kamar
Ευχαριστώ, δηλαδή όμως πρέπει να αποθηκεύσω όλο το περιεχόμενο του αρχείου σε ένα string, ( κάτι τέλος πάντων ) να το κλείσω, και μετά να επεξεργαστώ εκεί που έχω αποθηκεύσει όλο το περιεχόμενο του αρχείου; Έτσι γίνεται; Γιατί μου φαίνεται μια όχι και τόσο καλή πρακτική, ειδικά για μεγάλα αρχεία.

@lllias95
Σε ευχαριστώ πολύ, αν και δεν το πολύ κατάλαβα αυτό με το with statement ( σου εξασφαλίζει δηλαδή, ότι θα κλείσει το αρχείο στο τέλος και ας ξεχάσεις αν δώσεις εσύ την εντολή; ) αλλά θα το ξαναδώ, μόλις ξεκαθαρίσω πρώτα αυτό το θέμα...

Όσο για αυτό που λέω, για την σειριακή επεξεργασία, είναι να θέλω να ανοίγω π.χ. το αρχείο και να ψάχνω ένα ένα τα στοιχεία που έχει μέσα,
π.χ. να βλέπω αν τα στοιχεία που έχει μέσα είναι διατεταγμένα σε αύξουσα σειρά ( αν υπάρχουν ). σε ποια θέση είναι το τάδε στοιχείο ( αν υπάρχει ), να μου δίνει το στοιχείο της τάδε θέσης ( αν υπάρχει), να μετράω τα στοιχεία..κτλπ..
Επεξεργασία κάθε στοιχείου που έχει μέσα το αρχείο, ένα ένα ξεχωριστά και να προχωράω στο επόμενο.
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 472
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Αγγούρι » 19 Δεκ 2013, 01:54

Καλησπέρα.Κατ'αρχάς είμαι άσχετος όσο αφορά Python.Θα ήθελα αν μπορείτε, να με βοηθήσετε με το εξής πρόβλημα: όταν ζητάω να μου εμφανίσει ελληνικές λέξεις στύλ τοκενς, τα εμφανίζει αλαρμπουνέζικά. Το έψαξα πολύ και δοκίμασα αρκετά αλλά δεν βρήκα κάποια λύση... Έχω δοκιμάσει διάφορα encoding και κάποια άλλα πράγματα με decode αλλά δεν έβγαλα άκρη. Μάλλον δεν τα είχα εφαρμόσει σωστά. Αν έχετε καμία ιδέα στο πως να μου εμφανίζει σωστά τις λέξεις, παρακαλώ πείτε μου ή καλύτερα αν είναι εύκολο κάντε τις αλλαγές στον παρακάτω κώδικα, πραγματικά θα μου ήταν μεγάλη βοήθεια...

Κώδικας: Επιλογή όλων
import nltk, codecs
f_win = codecs.open('as.txt','rU',encoding='windows-1253')
#as.txt has ANSI encoding
raw_win = f_win.read()
raw_win = raw_win.encode('windows-1253')
tokens_win = nltk.WhitespaceTokenizer().tokenize(raw_win)
text_win = nltk.Text(tokens_win)

print text_win
<Text: Το καλοκαίρι είναι η εποχή του και ακόμη...>
print text_win[0:4]
['\xd4\xef', '\xea\xe1\xeb\xef\xea\xe1\xdf\xf1\xe9', '\xe5\xdf\xed\xe1\xe9', '\xe7']


βασικά εμφανίζει σωστά το κείμενο αλλά όταν ζητάω να εμφανίσει συγκεκριμένα τις λέξεις μου τα βγάζει ακαταλαβίστικα.
Αγγούρι
babeTUX
babeTUX
 
Δημοσιεύσεις: 1
Εγγραφή: 19 Δεκ 2013, 01:04
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron