使用Python读取不同格式的文件内容
1. Access数据库
参考链接:Python读取Access数据库基本操作
Python实现:
import pypyodbc
import win32com.client
#数据库文件路径
path = r'R:\STP Data\DataReport.accdb'
#连接数据库
con = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=' + path + ';'
con.Open(DSN)
conn = pypyodbc.connect(r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + path + ";Uid=;Pwd=;")
cursor = conn.cursor()
#获取某个表中所有内容
SQL_value = 'select * from DataReport'
for row in cursor.execute(SQL_value):
print(row)
#获取某个表中某一项数据的内容
SQL_value = "SELECT ULinmax1,ULinmax2 FROM DataReport WHERE ProductType='东风D320 V3'"
for row in cursor.execute(SQL_value):
print(row)
#获取统计表数据量
SQL_value = 'select count(*) from DataReport'
cursor.execute(SQL_value)
SUM = cursor.fetchall()[0][0]
print(SUM)
#关闭数据库
conn.close()
2. csv文件
参考链接:Python操作CSV格式文件
Python实现:
import csv
import os
#文件路径
path = 'C:/Users/HASEE/Desktop/para.csv'
with open(path) as f:
data = csv.reader(f)
#读取文件每一行数据,并以列表的形式返回
for row in data:
print(row)
#读取文件某一列数据,并以列表的形式返回
column = [row[0] for row in data]
print(column)
3. txt文件
参考链接:python txt文件常用读写操作
Python实现:
import re
#文件路径
path = 'C:/Users/HASEE/Desktop/data/annotations/frankfurt.txt'
#读取文本中全部内容,并以字符串的形式返回结果
with open(path) as file:
data = file.read()
print(data)
#读取文本中第一行内容,并以字符串的形式返回结果
with open(path) as file:
data = file.readline()
print(data)
#按行读取文本中全部内容,并以列表的形式返回结果
with open(path) as file:
data = file.readlines()
print(data)
4. mat文件
Python实现:
import scipy.io
#文件路径
path = 'C:/Users/HASEE/Desktop/data/anno.mat'
#读取文件全部内容,并以字典的形式返回
data = scipy.io.loadmat(path)
print(data)
5. json文件
Python实现:
import json
#文件路径
path = 'C:/Users/HASEE/Desktop/data/val_gt.json'
#读取文件全部内容,并以字典的形式返回
file = open(path)
t = json.load(file)
6. excel文件
xlrd和xlwt模块只能对xls格式的文件进行操作,而openpyxl模块只能对xlsx格式的文件进行操作。
6.1 xls文件
参考链接:python使用xlrd模块读取Excel
Python实现:
import xlrd
#文件路径
path = r'C:/Users/HASEE/Desktop/para.xls'
workbook = xlrd.open_workbook(path)
#通过工作表名称获取某一个工作表
table = workbook.sheet_by_name('para')
#获取工作表中的某一行数据
rows = table.row(0)
print(rows)
#获取工作表中的某一列数据
cols = table.col(0)
print(cols)
#通过行、列坐标获取某一单元格对象,坐标从0开始
cell = table.cell(1, 1)
#通过行、列坐标获取某一单元格类型,坐标从0开始
#返回的数字对应的单元格类型:0-empty(空的),1-string(text), 2-number, 3-date, 4-boolean, 5-error, 6-blank(空白表格)
cell_type = table.cell_type(2, 0)
print(cell_type)
#通过行、列坐标获取某一单元格中的值,坐标从0开始
cell_value = table.cell_value(1, 1)
print(cell_value)
6.2 xlsx文件
参考链接:python之openpyxl模块
Python实现:
from openpyxl import load_workbook
#文件路径
path = u'C:/Users/HASEE/Desktop/para.xlsx'
workbook = load_workbook(path)
list = []
#将所有工作表名存储在列表中并显示
list = workbook.sheetnames
print(list)
#读取某一个工作表中单一单元格内容
cell = workbook['para']['A1']
print(cell.value)
#读取某一个工作表中多个单元格内容
cell_range = workbook['para']['A1':'C3']
for row in cell_range:
for cell in row:
print(cell.value)
7. docx文件
参考链接:python-docx官方文档
Python实现:
import docx
#文件路径
path = r'C:/Users/Yifei.Chen/Desktop/ERelay C-Sample Test Report 20201123 (002).docx'
doc = docx.Document(path)
#读取文件中每一段的内容
# for para in doc.paragraphs:
# print(para.text)
#读取文件中表格的内容
table = doc.tables
for tb in table:
for row in tb.rows: #行
for cell in row.cells: #列
print(cell.text)
8. h5文件
参考链接:理解h5文件并使用python对h5格式文件进行读写操作
Python实现:
import numpy as np
import h5py
#文件路径
path = 'datasets/train_catvnoncat.h5'
#文件对象f表示h5文件的根目录(root group)
with h5py.File(path,'r') as f:
#打印所有键名
for key in f.keys():
print(f[key], f[key].name)
#读取键名为train_set_x对应的所有内容
train_set_x_orig = np.array(f["train_set_x"][:])
print(train_set_x_orig)