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

Πρόβλημα με Excel exporting στην Python


bilakos26

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

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

Καλησπέρα στην ομάδα! 
Πρόσφατα έψαχνα για την πρακτική μου στον Χρυσό Οδηγό γραφεία, με ονόματα, διευθύνσεις και τα σχετικά. Κατέληξα να περάσω όσα βρήκα με το χέρι, οπότε μιας και ασχολούμε με την Python είπα να κάνω και ένα script που να εξάγει όλες αυτές τις πληροφορίες για εμένα, να πειραματιστώ πάνω σε αυτό δηλαδή. 
Το script λοιπόν τρέχει πολύ καλά μέχρι το σημείο που είναι να εξάγει αυτές τις πληροφορίες σε Excel και Text αρχείο. Ενώ οι πληροφορίες με την εντολή prtint() εμφανίζονται κανονικά, στο Excel και το Text αρχείο περνάει τις 2 πρώτες σειρές απο το 1ο link και ύστερα τιποτα. Επίσης, στο Excel εξάγει πολύ λιγότερες πληροφορίες από ότι στο Text αρχείο . Παραθέτω τα αποτελέσματα από την εκτέλεση του script καθως και ενδεικτικά ένα μικρό μέρος από τα links (extracted_links.txt).

Παραθέτω τον κώδικα σε αρχείο μιας και οι γραμμές του κώδικα είναι αρκετές (υπάρχουν σχόλια στον κώδικα), καθώς και το link.txt για την αναζήτηση που θα κάνει. Το script πρώτα εξάγει τα Links και ύστερα εξάγει τις πληροφορίες. Για συντομία, ξεκινόντας το script δώστε την 2η εντολή για να ξεκινήσει να εξάγει τις πληροφορίες.

Η συνάρτηση στην οποία υπάρχει ο κώδικας για το Excel και Text αρχείο, είναι η (extract_information).

Eλπίζω να παρέχω αρκετές πληροφορίες. Αν όχι αναφέρετε μου τι δεν υπάρχει για να το συμπεριλάβω.

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

Έχω φάει αρκετές ΩΡΕΣ στο συγκεκριμένο κομμάτι του κώδικα, που αφορά το excel και το text αρχείο, χωρίς κανένα απολύτως αποτέλεσμα.

Σιγουρα δεν ζητάω κάτι έτοιμο από τον οποιονδήποτε, απλά έναν λόγο/αιτία που έχω αυτά τα αποτελέσματα. 

Ευχαριστώ εκ των προτέρων για οποιαδήποτε απάντηση υπάρξει!

 

link.txt xrysos_odigos.py extracted_links.txt

Λογιστικά.txt Λογιστικά.xlsx

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

Βρήκα την λύση!

Περνάω όλα τα στοιχεία στο τέλος κάθε λουπας σε μια λίστα και έπειτα στο τέλος της λουπας, τα περνάω από την λίστα στο Excel και το Text αρχειο. 
Με αυτό τον τρόπο τα περνάει κανονικά.

Ωστόσο, αν κάποιος έχει την καλή διάθεση ας μου εξηγήσει γιατί στο πρόβλημα δεν μου τα περνούσε με τον κώδικα που είχα εξαρχής.

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

για αρχή --> col_count=+1   να γίνει  col_count+=1  (γραμμές 193 , 212)

λάθος χρήση try-except

δεν μπορείς να βάζεις όλο τον κώδικα με

try:  

except Exception :

γιατί δεν ξέρεις από που ήρθε το λάθος

δοκίμασε το έτσι να δεις τι λάθη σου βγάζει και γιατί δεν δουλεύει

except Exception as e:
     print(type(e).__name__, __file__,  e.__traceback__.tb_lineno  )

 

ο παρακάτω κώδικας (γραμμές 174,175) πρέπει να πάει πιο δεξιά μέσα στο for

if urls not in links2:
    links2.append(urls)

'Οταν υπάρχει 2ο τηλέφωνο πρέπει το col_count να αυξάνει κατά 2

                    links2_len = len(links2)
                    if links2_len == 1:
                        worksheet.write(f"C{col_count}", links2[0])#####
                        text_f.write(links2[0] + "\n")####
                    else:
                        worksheet.write(f"C{col_count}", links2[0])
                        text_f.write(links2[0] + "\n")
                        col_count+=1####
                        worksheet.write(f"C{col_count}", links2[1])
                        text_f.write(links2[1] + "\n")
                    col_count += 1
worksheet.write = (f"B{col_count}", address)   --->γραμμες 182 ,204 σβήσε το =

 

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

@virxen75 Σε ευχαριστώ για την απάντησή σου φίλε! 
Στην 

try: 

except Exception:

βάζω απλά μια print(" ") με κάποιο νούμερο ή γραμμα και έτσι ξέρω από που προέρχεται το πρόβλημα όταν υπάρχει. Αυτή είναι μέθοδος αρχαρίου βέβαια. Ωστόσο και πάλι δεν είχα κάποιο σημάδι για το τι πάει λάθος. Με την μεταφορά τους σε μια λίστα όπως αναφέρθηκα παραπάνω μου εμφάνιζε όλα τα στοιχεία, οπότε έμεινα με αυτή.

Πάντως για την μεταφορά  των δεδομένων χρειάστηκαν επιπλέον 80 γραμμές κώδικα με if, elif, else και try - except για να περαστούν σωστά τα νούμερα τηλεφώνου. Το παλούκι ήτανε να καταλάβω ποιος αριθμητής ήθελε αύξηση και που δηλαδη (col_count += 1 ή += 2) και σε ποιες περιπτώσεις. 

Σε ευχαριστώ και πάλι για τον χρόνο σου φίλε Virxen !

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

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

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

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

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

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

Σύνδεση

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

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