Επισκέπτης Δημοσ. 25 Φεβρουαρίου 2012 Δημοσ. 25 Φεβρουαρίου 2012 Καλημέρα Θα ήθελα μια μικρή βοήθεια στο παρακάτω πρόβλημα. Πρέπει να επεξεργαστώ μια σειρά αρχείων τα οποία όλα έχουν σχεδόν την ίδια μορφή. Έχω τον κώδικα ο οποιος επεξεργάζετε τα αρχεία, ωστόσο θα ήθελα αν γίνεται να κάνει και το εξής. Κάθε αρχείο έχει στις πρώτες 11-12 γραμμές κάποιες πληροφορίες τις οποίες δεν μπορεί να τις αναγνωρίσει το script. Μέχρι τώρα έκανα χειροκίνητα delete, θα ήθελα να γίνεται αυτόματα διαγραφή. Μεταξύ των αρχικών πληροφοριών και των δεδομένων υπάρχει πάντα μια κενή γραμμή ανάμεσα. > abc def ghi data Μια πρόσεγγιση που σκεφτόμουν είναι με while >while line in open(file) != empty line=line.delete O κώδικας για το πρώτο μέρος είναι ο παρακάτω >#!/usr/bin/env python import csv, sys, os, tkFileDialog file = tkFileDialog.askopenfilename() if os.path.exists("replacing") os.remove("replacing") o = open("replacing","a") for line in open(file): line = line.replace("-",",") line = line.replace(" ",",") line = line.replace(":",",") o.write(line) o.close() o = open("replacing") tmp = csv.reader(o) Ευχαριστώ πολύ για τον χρόνο σας.
virxen75 Δημοσ. 25 Φεβρουαρίου 2012 Δημοσ. 25 Φεβρουαρίου 2012 για να δω αν κατάλαβα τι θες να κανεις έχεις ένα αρχείο π.χ. > ςερςερς ςερςερ ςερςερ ςερςερ ςερςερ ςερςερ ςερςερ ςερςερ ςερςερ ςερςερ δεδομενα1 δεδομενα2 δεδομενα3 και θες να φτιάξεις ένα νέο έτσι? > δεδομενα1 δεδομενα2 δεδομενα3 αν ναι τότε > #!/usr/bin/env python import csv, sys, os file = "test.txt" if os.path.exists("replacing.txt"): os.remove("replacing.txt") o = open("replacing.txt","a") dedomena=0 for line in open(file): if dedomena==1: line = line.replace("-",",") line = line.replace(" ",",") line = line.replace(":",",") o.write(line) if len(line)==1:#την κενή γραμμή την μετράει σαν 1 (python 3.2.2) dedomena=1 o.close()
Επισκέπτης Δημοσ. 26 Φεβρουαρίου 2012 Δημοσ. 26 Φεβρουαρίου 2012 Καλημέρα! Αυτό ακριβώς ήθελα!! Σε ευχαριστώ πάρα πολύ Δουλευεί και σε python 2.7.2 χωρίς πρόβλημα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα