Tricks

解决opencv中读取中文路径的图片的问题

1
2
3
def cv_imread(file_path):
cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)
return cv_img

matlab 把数组中的NaN去除掉

1
2
3
a = [NaN 1  2  3 4];
p = find(isnan(a))
a(p) = [];

mysql 创建数据库时指定utf-8编码

创建数据库编码指定

1
CREATE DATABASE dbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

设置数据表编码

1
2
3
4
5
6
CREATE TABLE 'author' (
'authorid' char(20) NOT NULL,
'name' char(20) NOT NULL,
'age' char(20) NOT NULL,
'country' char(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Xshell 传输和接受文件

首先需要安装 lrzsz

1
apt-get install  lrzsz

传输

sz , s 应该是sent

接受

rz , r 应该是 recieve

Tensorflow one-hot编码转换函数

这个函数会将numpy标签矩阵转化为one-hot编码矩阵,

  • 要注意转置的问题
1
2
def convert_to_one_hot(y, C):
return np.eye(C)[y.reshape(-1)].T

Windows下Python中文件路径字符串改成能用的

1
s.replace('\\', '\\\\')

python excel的读写

封装函数

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
def write_excel_xls(path, sheet_name, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlwt.Workbook() # 新建一个工作簿
sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, value[i][j]) # 像表格中写入数据(对应的行和列)
workbook.save(path) # 保存工作簿



def write_excel_xls_append(path, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
new_worksheet.write(i + rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入
new_workbook.save(path) # 保存工作簿
print("xls格式表格【追加】写入数据成功!")


def read_excel_xls(path):
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
for i in range(0, worksheet.nrows):
for j in range(0, worksheet.ncols):
print(worksheet.cell_value(i, j), "\t", end="") # 逐行逐列读取数据
print()

写入

这里要注意[[]]

1
2
value = [[name, composition]]
write_excel_xls_append(book_name_xls, value)