Cham's Blog Algorithm, skill and thinking

Python 常用文件读取与存储方式

2020-09-22

Python 常用文件读取与存储方式,包括 mat,npz,csv,xlsx,mkl,pkl 等格式。

Cham’s Blog 首发原创

文件索引

root = './data/office-caltech/'
dirs_domain = os.listdir(root)  # 输出所有文件和文件夹

for d in dirs_domain:  # 文件索引
    if os.path.isdir(d): pass  # 判断是否为文件夹
    if os.path.isfile(d): pass  # 判断是否为文件
    
for i, c in zip(range(len(dirs_domain)), dirs_domain):  # 文件排序、名称
	files = os.listdir(root+c)

txt 格式

# 读取txt文件

# 将txt读入数组中
import numpy as np
data = np.loadtxt("data.txt")

# 将数组写入txt文件
import numpy as np
np.save("data.txt",data)

# 将文件读入list中
data = []
for line in open("data.txt", "r"):  # 设置文件对象并读取每一行文件
    data.append(line)  # 将每一行文件加入到list中 

# 将list写入txt文件
with open('data.txt','w') as f:
    for name in info_list:
        f.write(name)
        f.write('\n')

mat 格式

# 读取matlab的文件
from scipy.io import loadmat
def load_data(path_to_file):
    annots = loadmat(path_to_file)
    data = annots['x']
    labels = annots['y'].flatten()
    labels -= 1
    return data, labels
    
# 保存matlab的文件
from scipy.io import savemat
savemat('D://data.mat', {'x':data})

npz 格式

# 保存文件
import numpy as np
np.savez("data.npz", x=x, y=y)

# 读取文件
import numpy as np
data = np.load('./data/data.npz')
x, z = data['x'], data['z']

csv 格式

# 读取文件
import csv
import numpy as np
with open('./data/train.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    rows = [row for row in reader]
data = np.array(rows)

# 保存文件
import pandas as pd
a, b = [1, 2, 3], [4, 5, 6]  # 只能是一维数组
dataframe = pd.DataFrame({'a_name': a, 'b_name': b})  # 字典中的key值即为csv中列名
dataframe.to_csv("test.csv", index=False, sep=',')

xlsx 格式

# 读取文件
import pandas as pd
df = pd.read_excel('./data/aa.xlsx', encoding='gbk')  # usecols =[0, 5] 指定列
[num, item] = df.values.shape

# 保存文件
import pandas as pd
data = pd.DataFrame([['a', 'b'], ['c', 'd']], index=['row 1', 'row 2'],
...                    columns=['col 1', 'col 2'])
data.to_excel('./data/bb.xlsx', index=False)

mkl 格式

import torch as tr

# 读取模型文件
model_path = './models/trained_model.pkl'
model = MLP(n_feature=100, n_hidden=16, n_output=2)
model.load_state_dict(tr.load(model_path))

# 保存模型文件
model = MLP(n_feature=100, n_hidden=16, n_output=2)
tr.save(model.state_dict(), model_path)

pkl 格式

import joblib

# 模型训练
gbm = LGBMClassifier(num_leaves=31, learning_rate=0.05, n_estimators=20)
gbm.fit(X_train, y_train, eval_set=[(X_test, y_test)], early_stopping_rounds=5)

# 模型存储
joblib.dump(gbm, 'demo_model.pkl')

# 模型加载
gbm = joblib.load('demo_model.pkl')


Similar Posts

Comments