-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathm.5_parte3.py
More file actions
148 lines (115 loc) · 4.94 KB
/
m.5_parte3.py
File metadata and controls
148 lines (115 loc) · 4.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
"CSV"
"Uso del modulo csv"
"libreria que nos permite trabajar con ficheros CSV. Documentacion https://docs.python.org/3/library/csv.html"
import csv
# Apertura y lectura de ficheros CSV con reader
'''usaremos el docuemento 02_data.csv'''
#leer el archivo csv con readre
with open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv","r") as my_csv_file:
reader = csv.reader(my_csv_file)
for row in reader:
print(row)
# podremos leer y escribir en csv
# es normal leer los ficheros csv linea a linea
print("\t")
# leer archivo csv con reader y optimizando la salida
with open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv","r") as my_csv_file:
reader = csv.reader(my_csv_file, delimiter=";")
for row in reader:
print(",".join(row))
print("\t")
#leer solo cabezeras
with open ("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv","r") as f:
reader = csv.reader(f)
cabeceras = next(reader)
print(cabeceras)
# Uso de reader y next
with open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv","r") as my_csv_file:
reader = csv.reader(my_csv_file, delimiter=",")
reg0 = next(reader) # leer registro (lista)
print(reg0)
reg1 = next(reader) # leer siguiente (lista)
print(reg1)
nombre, provincia, consumo = next(reader) # Almacenar en variables el siguiente
# (en el orden que se indica)
print("Nombre: ",nombre,"Provincia: ",provincia,"consumo: ",consumo) # Mostrar las variables
# leer archico csv con reader, next, bucle y formato de salida
with open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv","r") as my_csv_file:
reader = csv.reader(my_csv_file, delimiter= ",")
next(reader) # saltarnos la cabecera del documento csv
for index, row in enumerate(reader):
print('lineas: ' + str(index))
print('\tnombre: ' + row[0], "provincias: " + row[1], "Consumo:" + row[2])
# Ordenacion por campos con operator
"Documentos en https https://docs.python.org/3/library/operator.html"
import operator
print("\n")
# leer archivo scv con reader y mostrarlo ordenando por el tercer campo (consumo)
my_csv_file = open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv")
listaordenada = sorted(my_csv_file,
key = operator.itemgetter(2), # es provicia, nos organiza por medio de una cabezera sera provincia
reverse=True
)
for i in listaordenada:
print(i)
# O si queremos imprimir la lista de seguido:
# print(listaordenada)
# Leer CSV en formato diccionario
# leer archivo csv como lista de diccionarios con DictReader() y mostrar solo
print("\n")
with open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv","r") as my_csv_file:
reader = csv.DictReader(my_csv_file)
for reg in reader:
print(reg['provincia'],"->",reg['consumo']) # para ver informacion de reader toca si o si hacer bucles
# es mas rapido leer documuento por dicionario cuando son datos muy grandes o cuando se conocen los datos
print("\n")
my_csv_file= open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv")
reader = csv.DictReader(my_csv_file)
listadicc = list(reader) # Obtener lista de diccionarios
listafinal = sorted(listadicc,
key=operator.itemgetter('consumo'),
reverse=True
)
for registro in listafinal:
print(registro)
# Cerrar correctamente un fichero CSV
print("\n")
with open("/Users/santirodriguez/Documents/Python/M5/02_CSV_data.csv","r") as my_csv_file:
reader = csv.reader(my_csv_file)
for row in reader:
print(row)
del reader # Borra objetos
my_csv_file.close()# Cerrar archivo
print("Fichero scv cerrado con exito")
# Crear un Fichero CSV nuevo
'''
Abrir posteriorente el fichero02__CSV_data_2.csv para comprobar que se haya creado con el contenido correcto.
El fichero se creara en el directorio de este proyecto.
'''
#Escribir todas las tuplas de una lista con writerow() y writerows()
# en un ficehro nuebo del fichero con "w" o "wb"
datos = [("aaa",111),
("bbb",222),
("ccc",333)]
csvsalida = open("02_CSV_data_2.csv","w", newline='')
writer = csv.writer(csvsalida)
writer.writerow(['nombre','precio'])
writer.writerows(datos)
del writer
csvsalida.close()
# Añadir datos a un fichero CSV ya creado
'''
Abrir psoteriormente el fichero 02_CSV_data_2.csv para comprobrar que se haya creado con el
contenido correcto.
'''
# Añadir todas las tuplas de una lista en un fichero existente
# (apertura del fichero con "a" o "ab", que se viene de apppend y añade info al final)
datosnuevos = [('ddd',444),('eee',555),('fff',666)]
csvsalida = open("02_CSV_data_2.csv", "a", newline= '') # a de append
writer = csv.writer(csvsalida)
writer.writerows(datosnuevos)
del writer
csvsalida.close()
#statistics invertigar libreria para poder abordar lo que nesecitamos hacer en este
# terminamos modulo de excel aqui
# vamos a ver json