目录
前言
基于自己实际工作使用情况,做下面学习记录和整理。
python 数据类型转换语法
str( ) 可以把其他类型数据转化为字符串类型
int( ) 可以把其他类型数据转化为整型
float( ) 可以把其他类型数据转化为浮点型
bool( ) 可以把其他类型数据转化为布尔类型
list( ) 可以把其他类型数据转化为列表类型
tuple( ) 可以把其他类型数据转化为元组类型
dict( ) 可以把其他类型数据转化为字典类型
set( ) 可以把其他类型数据转化为集合类型
python字符串删除指定元素
#1.pop方法
s1 = 'hello,world!'
lst_s1 = list(s1) # 将字符串转为列表
lst_s1.pop(1) # 删除下标为1的字符,即删除字母e
print(''.join(lst_s1)) # 输出为hllo,world! #用于将转换列表的字符串再转为字符串
#2.replace方法
s1 = 'hello,world!' #删除字符l
print(s1.replace('l','')) #输出 heo,word!
#3 使用切片 + 拼接的方式,删除字符串中单个固定位置的字符
s = 'abc:cba' #删除字符:
s1 = s[:3] + s[-3:] #切片+拼接
print(s1) #输出:abccba
Python 读取excel
方式一:使用openpyxl库
import openpyxl
from openpyxl import Workbook
#快捷键说明
#CTRL + / 快速注释掉选中区域代码
#----------------------------第一部分----------------------------------------#
#1、rd excel,打开工作簿
wb = openpyxl.load_workbook('c:/Users/Desktop/ww.xlsx')
#2、查看有哪些表单
#print(wb.sheetnames)
#3、遍历表单,把表单名称打印处理
#for sheet in wb:
# print(sheet.title)
#4、创建新的表单Sheet
mySheet = wb.create_sheet('mySheet')
#print(wb.sheetnames)
#5、操作表单
sheet3 = wb.get_sheet_by_name('mySheet')
sheet1 = wb['Sheet1']
#6、获取活跃表单
sheet_act = wb.active
#print(sheet_act)
#print(sheet_act['A1'])
#print(sheet_act['A1'].value)#打印单元格值
#7、获取单元格行列坐标
c = sheet1['A1']
#print('Row{},Column{} is {}'.format(c.row,c.column,c.value))
#print('Cell{} is {}'.format(c.coordinate,c.value))
#8、切片访问EXCEL文件指定区域单元格
#print(sheet1.cell(row=1,column=1))
#print(sheet1.cell(row=1,column=1).value)
#切片访问方式一
#正序访问,row = 1 ,2
#for i in range(1,3):
# print(i,sheet1.cell(row=i,column=2).value)
#倒序访问,row = 2 ,1
#for i in range(2,0,-1):
# print(i,sheet1.cell(row=i,column=2).value)
#切片访问方式二
col_range = sheet1['A:B']
row_range = sheet1[1:2]
# for col in col_range:
# for cell in col:
# print(cell.value)
# for row in row_range:
# for cell in row:
# print(cell.value)
#切片访问方式三
# for row in sheet1.iter_rows(min_row=1,max_row=2,max_col=2):
# for cell in row:
# print(cell.value)
#切片访问方式四
# cell_range = sheet1['A1:C3']
# for row0fCell0bjects in cell_range:
# for cell0bj in row0fCell0bjects:
# print(cell0bj.coordinate,cell0bj.value)
# print('----------END OF ROW----------')
#9、获取整列
#colC = sheet1['B']
#print(colC)
#print(colC[2].value) #打印该列第3行数值
#row6 = sheet1[6]
#10、获取最大行列数值
print('{}*{}'.format(sheet1.max_row,sheet1.max_column))
#----------------------------第二部分----------------------------------------#
import openpyxl
from openpyxl import Workbook
#给单元格赋值,并保存
wb2 = openpyxl.load_workbook('c:/Users/oo/Desktop/uu.xlsx')
sheet = wb2['vv']
sheet['A1'] = 'Hello'
print(sheet['A1'].value)
wb2.save('c:/Users/oo/Desktop/uu.xlsx')
#创建一个新的工作簿
#wb2 = openpyxl.Workbook()
#print(wb2)
#wb2.sheetnames
#给工作表设置名称
# sheet = wb2.active
# sheet.title = 'vv'
# print(wb2.sheetnames)
#保存工作簿
#wb2.save('c:/Users/oo/Desktop/uu.xlsx')
#创建Sheet
# wb2 = openpyxl.load_workbook('c:/Users/oo/Desktop/uu.xlsx')
# wb2.create_sheet(title='WW')
# wb2.sheetnames
#删除Sheet
# del wb2['WW']
# wb2.sheetnames
openpyxl库
import openpyxl
from openpyxl import Workbook
#1、rd excel
wb = openpyxl.load_workbook('c:/Users/Desktop/TT.xlsx')
#2、get sheet
sheet=wb['Sheet1'] #excel文件中名称为'Sheet1'的sheet工作表
#print(sheet['A1'].value) #打印单元格值
#sheet['A1'] = 20 #给单元格赋值
#print(sheet['A1'].value)
#遍历指定区间单元格
for cell_data in sheet['F2':'F1690']: #获取单元格范围,赋值给cell_data
for cell in cell_data: #for循环遍历cell_data
str2 = '0x' + str(cell.value) #将cell转换成字符串
#print(str2)
cell.value = str2 #给单元格赋值
print(cell.value)
wb.save('c:/Users/oo/Desktop/vv.xlsx') 存储当前excel文件
##############################################################
#知识储备
#lower():所有字母小写
#capitalize():首字母大写,其他字母小写
#title():每个单词首字母大写,其他小写
#单元格属性
#cell.value #单元格值
#cell.row #单元格行序号
#cell.column #单元格列序号
#cell.coordinate #单元格坐标
#string.ljust(width) 返回一个原字符串左对齐,并使用(英文)空格填空至长度width的新字符串
#string.rjust(width) 返回一个原字符串右对齐,并使用(英文)空格填空至长度width的新字符串
#string.center(width) 返回一个原字符串居中,并使用(英文)空格填空至长度width的新字符串
##############################################################
#0、导入数据库
import pandas as pd
import numpy as np
import openpyxl
from openpyxl import Workbook
#1、rd excel
wb = openpyxl.load_workbook('c:/Desktop/list.xlsx')
#2、get sheet
sheet=wb['interrupt_list'] #excel文件中名称为'interrupt_list'的sheet工作表
#3、get strings
file = open('c:/Desktop/wt.h','w') #创建并打开文件wt.h,数据传递给file
#指定单元格区间,开始遍历
for cell_data in sheet['C3':'C98']: #获取单元格范围,赋值给cell_data
for cell in cell_data: #for循环遍历cell_data
if cell.value == None: #如果单元格空
print('empty') #打印
else: #如果单元格不空
str1 = cell.row -3 #str1 = 当前单元格行序号-3
str1 = str(str1) #将int类型转换成字符串
str1 = str1.rjust(3) #将str1字符串右对齐,不足的填充空格,处理后字符串位宽为3
str1 = ('32+'+str1) #字符串拼接
str1 = '('+str1+')' #字符串拼接
str2 = 'INT_'+cell.value.upper() #字符串拼接 + 将单元格字符串转换成大写
str2 = str2.ljust(30) #字符串左对齐
str3 = '#define ' + str2+ str1 #字符串拼接
print(str3) #打印
file.write(str3) #文件写入
file.write('\n') #回车
file.close() #关闭文件
##############################################################
#知识储备
#lower():所有字母小写
#capitalize():首字母大写,其他字母小写
#title():每个单词首字母大写,其他小写
#单元格属性
#cell.value #单元格值
#cell.row #单元格行序号
#cell.column #单元格列序号
#cell.coordinate #单元格坐标
#string.ljust(width) 返回一个原字符串左对齐,并使用(英文)空格填空至长度width的新字符串
#string.rjust(width) 返回一个原字符串右对齐,并使用(英文)空格填空至长度width的新字符串
#string.center(width) 返回一个原字符串居中,并使用(英文)空格填空至长度width的新字符串
##############################################################
方式二:使用xlrd库
import sys,getopt,os,logging,pdb,re,xlrd,copy,time,math
#import openpyxl
#from openpyxl import Workbook
#1、rd excel
#wb = openpyxl.load_workbook('c:/Desktop/list.xlsx')
wb =xlrd.open_workbook('c:/Desktop/list.xlsx')
#2、get sheet
#sheet=wb['interrupt_list'] #excel文件中名称为'interrupt_list'的sheet工作表
sheet=wb.sheet_by_name('interrupt_list')
title_str = '//============================ define digital Decimal ============================'
file = open('c:/Desktop/irq.h','w') #创建并打开文件wt.h,数据传递给file
file.write(title_str) #文件写入
file.write('\n') #回车
#3、get strings
for col in range(2, 3):
for row in range(2,98):
if sheet.cell_value(row,col) =='': #如果单元格空
print('empty') #打印
else: #如果单元格不空
str1 = row -2 #str1 = 当前单元格行序号-3
str1 = str(str1) #将int类型转换成字符串
str1 = str1.rjust(3) #将str1字符串右对齐,不足的填充空格,处理后字符串位宽为3
str1 = ('32+'+str1) #字符串拼接
str1 = '('+str1+')' #字符串拼接
str2 = 'INT_'+sheet.cell_value(row,col).upper() #字符串拼接 + 将单元格字符串转换成大写
str2 = str2.ljust(30) #字符串左对齐
str3 = '#define ' + str2+ str1 #字符串拼接
print(str3) #打印
file.write(str3) #文件写入
file.write('\n') #回车
file.close()
Python xlwt库
Python xlutils
本节引用:xlwt库不新建,直接读取已存在的excel并写入
xlwt 写库的局限性: 只能写入新建的 excel。
xlutils 库的 copy 功能可能帮助我们打破这个局限性。
首先,用pip install xlutils
来添加 xlutils 库。
import xlwt
import xlrd
import xlutils.copy
rd = xlrd.open_workbook("Hello.xls", formatting_info = True) # 打开文件
wt = xlutils.copy.copy(rd) # 复制
sheets = wt.get_sheet(0) # 读取第一个工作表
sheets.write(m, n, "I love you!") # 向 m-1 行 n-1 列的单元格写入内容
wt.save("Hi.xls") # 保存
实现原理就是:我先读,再用xlutils.copy的 copy 复制一份,复制的这个就能实现写入了。
xlrd.open_workbook("Hello.xls", formatting_info = True)
里面的参数是可选的: 很重要,这个是保留原格式,没有它的话你会发现新的 excel 一点样式都没有。
Python语法
中断跳出内存for循环
range(start, stop[, step]) 从 start 开始到 stop 结束(不包含 stop)返回一个整数序列的迭代对象, step 为他的步长
for i in range(1,5):
for j in range(5,10):
print(i,j)
if j==6:
break # 如果满足该条件,跳出内层for循环
else: # 如果不满足条件,则内层层for循环执行else
continue
python安装 & Jupyter Notebook
首先安装python:Download Python | Python.org 选择最新版本下载即可。 (python-3.8.1-amd64.exe)
然后安装anaconda,链接: anaconda。其内部集成了Jupyter Notebook。后面主要使用Jupyter。
安装完anaconda后,搜索程序Jupyter Notebook打开
安装xlrd 和xlwt
安装xlwt与xlrd步骤类似