1.archivo de texto
1.1 Camino
file_path = "E:\Python Project\temp.txt"
with open(file_path) as f:
content1 = f.read()
Al importar un archivo, si ingresa directamente la ruta absoluta del archivo, se informará un error porque \P es un carácter de escape.
Por lo tanto, agregar r delante de la ruta absoluta puede evitar que el contenido entre comillas sea reconocido como caracteres de escape (agregar f antes de las comillas indica que se trata de una cadena con un formato especial, que puede incluir llaves {} y expresiones dentro ellos. , donde {} se completa con el valor de la expresión)
file_path = r"E:\Python Project\temp.txt"
with open(file_path) as f:
content1 = f.read()
O puedes usar rutas relativas directamente
file_path = "temp.txt"
with open(file_path) as f:
content1 = f.read()
Las rutas relativas identifican la carpeta actual de forma predeterminada
1.2 Lectura de archivos
Python puede leer archivos usando
with open(file_path) as f:
f.read()
También se puede escribir, con el mismo efecto. Por supuesto, open(file,'r') puede agregar el atributo de lectura del archivo.
file_path = r"E:\Python Project\temp.txt"
f = open(file_path)
El contenido del archivo se puede leer mediante lectura, línea de lectura y líneas de lectura respectivamente para leer el archivo completo, una línea o todas las líneas y colocarlas en la lista. El contenido leído anteriormente no se leerá más adelante.
Archivo 2.xlsx
2.1 Lectura de archivos
Puedes usar excel_read() de la biblioteca panda
import pandas
f = pandas.read_excel(r"E:\Python Project\1.xlsx")
print(f)
También puede usar directamente open_workbook() de la biblioteca xlrd, pero la última versión de la biblioteca xlrd ha eliminado la compatibilidad con xlsx;
import xlrd
f = xlrd.open_workbook_xls(r"E:\Python Project\1.xlsx")
También puedes usar load_workbook() de openpyxl
import openpyxl as xl
f = xl.load_workbook('1.xlsx')
3. Ejercicio: realizar un procesamiento de funciones simple en datos de archivos
Cálculo de coeficientes de Pearson para la primera y segunda columnas de datos en el archivo xlsx
import openpyxl
import pandas
import math
f = pandas.read_excel(r"E:\Python Project\1.xlsx")
data1 = f.values
print(type(data1))
sum_ans0 = 0
sum_ans1 = 0
for i in data1:
sum_ans0 += i[0]
sum_ans1 += i[1]
ave_ans0 = sum_ans0 / len(data1)
ave_ans1 = sum_ans1 / len(data1)
sum_final0 = 0
sum_final1 = 0
sum_final2 = 0
for temp_i in data1:
sum_final0 += (temp_i[0] - ave_ans0) * (temp_i[1] - ave_ans1)
sum_final1 += math.pow((temp_i[0] - ave_ans0), 2)
sum_final2 += math.pow((temp_i[1] - ave_ans1), 2)
pearson = sum_final0/(math.sqrt(sum_final1) * math.sqrt(sum_final2))
print(f"Pearson={pearson}")
Después de obtener f, obtenga la lista de datos a través de f.value y luego recorra los datos en la lista para resolverlo.
El recorrido también se puede lograr a través desheet.cell en openpyxl
import openpyxl as xl
f = xl.load_workbook('1.xlsx')
sheet = f['Sheet1']
cell = sheet.cell(1, 1)
print(cell.value)
list_ans = []
for row in range(1, sheet.max_row + 1):
list_ans.append([sheet.cell(row, 1).value, sheet.cell(row, 2).value])
3.1 Optimización de la suma de una lista bidimensional
El ejercicio anterior involucra una lista bidimensional que requiere sumar el primer número y el segundo número de cada lista respectivamente.
3.1.1 para recorrido
La forma más sencilla es recorrer la lista directamente con for
import openpyxl
import pandas
import math
f = pandas.read_excel(r"E:\Python Project\1.xlsx")
data1 = f.values
print(type(data1))
sum_ans0 = 0
sum_ans1 = 0
for i in data1:
sum_ans0 += i[0]
sum_ans1 += i[1]
3.1.2suma
La aplicación directa de la suma a listas multidimensionales puede dar como resultado las sumas correspondientes, respectivamente.
import openpyxl
import pandas
import math
f = pandas.read_excel(r"E:\Python Project\1.xlsx")
data1 = f.values
print(type(data1))
sum_ans1 = sum(data1)
3.2 Dibujar un diagrama de barras
import openpyxl as xl
from openpyxl.chart import BarChart, Reference
f = xl.load_workbook('1.xlsx')
sheet = f['Sheet1']
cell = sheet.cell(1, 1)
print(cell.value)
list_ans = []
for row in range(1, sheet.max_row + 1):
list_ans.append([sheet.cell(row, 1).value, sheet.cell(row, 2).value])
plot_data = Reference(sheet, min_col=1, max_col=2, min_row=1, max_row=sheet.max_row)
chart = BarChart()
chart.add_data(plot_data)
sheet.add_chart(chart, 'c1')
f.save('1.xlsx')