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

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

Δημοσ.

Καλημέρα :-)

 

Θα ήθελα μια μικρή βοήθεια στο παρακάτω πρόβλημα.

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

Κάθε αρχείο έχει στις πρώτες 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)

 

Ευχαριστώ πολύ για τον χρόνο σας.

Δημοσ.

για να δω αν κατάλαβα τι θες να κανεις

 

έχεις ένα αρχείο π.χ.

>
ςερςερς
ςερςερ
ςερςερ
ςερςερ
ςερςερ
ςερςερ
ςερςερ
ςερςερ
ςερςερ
ςερςερ

δεδομενα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()

Δημοσ.

Καλημέρα!

 

Αυτό ακριβώς ήθελα!! Σε ευχαριστώ πάρα πολύ :-)

Δουλευεί και σε python 2.7.2 χωρίς πρόβλημα.

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

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

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

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

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

Σύνδεση

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

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