python操作excel(xlrd、xlwt、xlwings、pandas、openpyxl)

2023-11-03

文章目录

一、xlrd库

1、工作簿(book)

(1) 创建工作簿对象

import xlrd
workbook=xlrd.open_workbook("文件路径")

2、工作表(sheet)

(1) 创建工作表对象

创建工作表的对象一般调用关于sheet的方法,一共有三种调用方式。
第一种:通过工作表索引创建

worksheet01=workbook.sheet_by_index(index) 

第二种:通过工作表名称

worksheet02=workbook.sheet_by_name(sheet_name)  

第三种:通过sheets()方法

worksheet03=workbook.sheets()[index]    
worksheet03=workbook.sheets()  #可以创建批量sheet对象

实例与结果:

3、单元格(range)

(1)获取单个单元格的值(两种方法)

第一种:通过调用cell()方法中的value属性

cell_value01=worksheet.cell(row,clo).value  

第二种:通过调用cell_value()方法

cell_value02=worksheet.cell_value(rowx= ,clox= )  

实例与结果:

(2)获取单行或单列的值

获取单行的值:

row_value01=worksheet.row(行索引值)  #通过调用row()方法
row_value01=worksheet.row_values(行索引值)  #通过调用row_values()方法

获取单列的值:

clo_value01=worksheet.clo(列索引值)  #通过调用clo()方法
clo_value02=worksheet.clo_values(列索引值)  #通过调用clo_values()方法

实例与结果:

在这里插入图片描述

import xlrd 
workbook=xlrd.open_workbook(r"D:\learning\商品销售表.xls")
worksheet=workbook.sheets()[0]
clo_value01=worksheet.col_values(0)
clo_value02=worksheet.col_values(5)
row_value01=worksheet.row_values(2)
row_value02=worksheet.row_values(5)
print("clo_value01:",clo_value01)
print("clo_value02:",clo_value01)
print("row_value01:",row_value01)
print("row_value02:",row_value02)

在这里插入图片描述

4、获取工作表中的总行列数

total_rows=worksheet.nrows  #获取总行数
total_cols=worksheet.ncols  #获取总列数

实例与结果:

二、xlwt库

1、工作簿(book)

(1)创建工作簿对象

import xlwt
workbook=xlwt.Workbook("文件路径")

(2)保存工作簿

workbook.save()  #传参只能是地址,如有传参则是另存为,若无传参功能类似于保存

2、工作表(sheet)

(1)创建工作表对象

new_worksheet=workbook.add_sheet("工作表名称")  #创建一个新的工作表,并将其返回给实例对象

注意⚠:
worksheet=workbook.sheets()[index/sheet_name] 此方法会报错哦!因为xlwt.Workbook中没有sheets()方法,因为不能使用xlwt库来创建已有的工作表

(2)写入数据

worksheet.write(row,clo,value)  #通过write()方法将值写入指定的行列中

3、XFStyle风格样式

(1)Font(字体样式)

第一步:初始化XFStyle实例对象

import xlwt
style=xlwt.XFStyle()

第二步:创建属性对象

font=xlwt.Font()   #通过调用Font()方法创建属性对象

第三步:对font的属性值初始化

font.name="宋体"  #设置字体
font.blod=False/True #设置加粗
font.height= 字号*20  #  设置字体字号

第四步:将属性对象赋予给XFStyle对象中的font属性

style.font=font

第五步:将XFStyle实例对象写入工作表对象中

worksheet.write(row,clo,value,style)

(2)Borders(边界)

  1. 边框线粗细
borders.top=     #设置上边框线大小
borders.bottom=    #设置下边框线大小
borders.left=      #设置左边框线大小
borders.right=     #设置右边框线大小
  1. 边框线颜色
borders.top_colour=     #设置上边框线颜色
borders.bottom_colour=    #设置下边框线颜色
borders.left_colour=      #设置左边框线颜色
borders.right_colour=     #设置右边框线颜色
  1. 代码实例
import xlwt
style=xlwt.XFStyle()  
borders=xlwt.Borders()   
borders.left=1   
borders.right_colour=33   
style.borders=borders    
worksheet.write(row,clo,value,style)   

(3)Alignment(对齐)

  1. 属性介绍
属性代码 描述说明
alignment.vert = xlwt.Alignment.VERT_TOP 水平方向—向上对齐
alignment.vert = xlwt.Alignment.VERT_CENTER 水平方向—居中对齐
alignment.vert = xlwt.Alignment.VERT_BOTTOM 水平方向—向下对齐
alignment.horz = xlwt.Alignment.HORZ_TOP 垂直方向—向左对齐
alignment.horz = xlwt.Alignment.HORZ_CENTER 垂直方向—居中对齐
alignment.horz = xlwt.Alignment.HORZ_BOTTOM 垂直方向—向右对齐
  1. 代码实例
import xlwt
style=xlwt.XFStyle()  
alignment=xlwt.Alignment()   #创建alignment对象
alignment.vert=xlwt.Alignment.VERT_CENTER   #设置文字水平居中
alignment.horz=xlwt.Alignment.HORZ_BOTTOM   #设置文字垂直靠底部
style.alignment=alignment    #将alignment对象直接赋给style对象的alignment属性
worksheet.write(row,clo,value,style)   #将style写入对应的单元格中

(4)Pattern(模式)

  1. 属性介绍
pattern.pattern=xlwt.Pattern.SOLID_PATTERN    #第一个pattern指的是对象,第二个pattern代表属性
pattern.pattern_fore_colour=33  #设置单元格背景颜色
  1. 代码实例
impotr xlwt
style=xlwt.XFStyle()
pattern=xlwt.Pattern()
pattern.pattern=xlwt.Pattern.SOLID_PATTERN    #第一个pattern指的是对象,第二个pattern代表属性
pattern.pattern_fore_colour=33  #设置单元格背景颜色
style.pattern=pattern
worksheet.write(row,clo,value,style) #将style写入对应的单元格中

附加知识:设置行高列宽

1、设置列宽

worksheet.col(index).width=256*n  #通过clo()方法中的width属性设置

2、设置行高

worksheet.row(index).height_mismatch=True   #初始化数据
worksheet.row(index).height=n*m   #通过row()方法中的height属性设置

三、xlwings库

1、Excel程序

(1)打开Excel程序

import xlwings as xw
app=xw.App(visible=True,add_book=False)  #打开excel程序
#visible是界面可视属性,add_book代表是否新建一个工作簿

(2)退出Excel程序

app.quit  #关闭excel程序

2、工作簿(book)

(1)创建工作簿对象

创建工作簿对象一共有两种方式,
第一种方式:在excel程序中添加新的工作簿或者打开已有工作簿,通过调用app对象,

new_workbook=app.book.add()    #创建新的工作簿,无传参时直接新建一个工作簿
workbook=app.books.open("文件路径")  #打开已有工作簿

第二种方式:通过调用xlwings库中的Book()方法

workbook=xw.Book("文件路径")  #打开已有工作簿

(2)保存工作簿

workbook.save()  #若填写地址参数则相当于另存为,若无地址参数则相当于保存

(3)关闭工作簿

workbook.close()  #该操作把工作表都关闭,但是excel程序没有被关闭

(4)工作簿属性

  1. 获取工作簿路径:workbook.fullname
  2. 获取工作簿名称:workbook.name

3、工作表(sheet)

(1)创建工作表对象

worksheeet=workbook.sheets[index/sheet_name] 

(2)批量创建工作表对象

worksheeet_list=workbook.sheets #返回此工作簿里所有的工作表
#print(worksheeet_list)     ---------> Sheets([<Sheet [工作簿名称1.xlsx]工作表名称1>, ...,<Sheet [工作簿名称N.xlsx]工作表名称N>,]) 
# print(worksheeet_list[index].name) ---------> 工作表名称

(4)常用API

  1. 获取所有工作表:
    listbook=workbook.sheets

  2. 打开原工作表:
    sheet=workbook.sheets["工作表名称或索引位置"]

  3. 激活活动工作表:
    sheet.activate()

  4. 表格清除:
    sheet.clear() 清除内容和样式
    sheet.clear_contents() 删除内容
    sheet.delete() 删除工作簿

4、单元格(range)

(1)创建单元格对象

workcontent=worksheeet.range("单元格位置").value #参数可以是单个单元格也可以是个范围
#workcontent=worksheeet.range("A1:E1").value=['姓名','级别','学历','薪资','地区']
#workcontent=worksheeet.range("A1").value='姓名'
#workcontent=worksheeet.range("B1").value='级别'

(2)向单元格写入数据

写入单个数据:

workcontent=worksheeet.range("B2").value='级别'
workcontent=worksheeet.range("B2").value='=SUM(A1:A3)'  # 输入公式,excel表中计算出结果

写入一行数据:

workcontent=worksheeet.range("A1:E1").value=['姓名','级别','学历','薪资','地区'] #向A1:E1写入数据
workcontent=worksheeet.range("A2").value=('姓名','级别','学历','薪资','地区')  # 默认向A2:E3写入数据 
workcontent=worksheeet.range('A1').options(transpose=True).value = ['姓名','安其拉','鲁西','狒狒'] #因为transpose的作用将数据转置,再向A2:A4写入数据

写入多行数据:

worksheet.range('a2').value=[['小A','男','三年一班'],
                              ['小B','女','三年二班'],
                              ['小C','女','三年一班'],
                              ['小D','女','三年二班']]  # 或者二维元组
worksheet.range('a2').value=df  #传入DataFrame类型时,会直接将整个DataFrame表格数据直接写入

注意:不能写入集合,如果传入一个完整的字典时只会插入key。

fg.options(converter,ndim=None,dates=None,transpose=False,expand=None)
# converter:(object) 转换函数  dict、np.array、pd.DataFrame、pd.Series
# ndim:(int) 维度数
# dates:(type)  ``datetime.date`` defaults to ``datetime.datetime``
# transpose:(Boolean) 是否转置
# expand:(str) 读取移动方向,table(向下向右)、down(向下)、right(向右)

(3) 读取表格中的数据

worksheet.range('a2').value  # 返回A2单元格的数据
worksheet.range('a2:b8').value # 返回a2:b8单元格范围的数据,返回的类型为n元列表
worksheet.range('a2:b8').value.option(np.array,)

(4)获取有效内容的数据

workdata=worksheeet.used_range.value  #返回excel表格中有效的数据,并将数据封装成list类型

(5)获取表格有效内容的最后位置

workaddress=worksheeet.used_range.address #返回excel数据最后一个单元格的绝对地址,但是该地址为str类型 
#如果要将绝对引用地址变为相对地址则需要对字符处理,worksheeet.used_range.address.replace("$","")

在这里插入图片描述

(6)灵活获取Range有效范围的内容

workdata=sheet.range('A2').expand('table').value  # 从指定的A2开始获取有效内容
#  或
workdata=sheet.range('A2').options(expand='table').value

(7) 常用API

  1. 获取当前单元格对象或者单元格范围对象:fg=sheet.range(范围)
  2. 获取单元格的行列标:fg.row / fg.column
  3. 获取单元格的行高列宽:fg.row_height / fg.column_width
  4. 单元格行高列宽自适应:fg.rows.autofit() / fg.columns.autofit()
  5. 添加超链接/设定超链接:fg.add_hyperlink(网址,显示名称,提示) / fg.hyperlink=www.baidu.com
  6. 获取单元格范围地址:fg.get_address()
  7. 清除单元格的内容和格式:fg.clear()
  8. 清除单元格的内容:fg.clear_contents()
  9. 获取单元格背景颜色/设置单元格背景颜色:fg.color / fg.color=(r,g,b)
  10. 合并单元格:worksheet.range('A1:C6').api.Merge()
  11. 获取单元格公式:fg.formula_array
  12. 在单元格内输入公式:fg.formula='=公式'
  13. 单元格所在的行列:
#1.column的意义
column #返回所在的列标
columns #返回指定范围的列对象
fg.columns[下标]  #取对应列的值并返回列对象
len(fg.columns)   #返回列的长度
fg.column_width #返回所在列的列宽 

#2.row的意义
row #返回所在的行标
rows #返回指定范围的行对象
fg.rows[下标]  #取对应行的值并返回行对象
len(fg.rows)   #返回行的长度
fg.row_width #返回所在行的列宽 

#3.自动调节行高列宽
fg.autofit

四、pndas库

1、读取数据

语法: pandas.read_excel(io, sheet_name= 0, header= 0, names=None, index_col= None, usecols=None, squeeze= None, dtype= None, engine= None, converters=None, true_values= None, false_values= None, skiprows= None, nrows= None, na_values=None, keep_default_na= True, na_filter= True, verbose= False, parse_dates=False, date_parser=None, thousands= None, decimal= '.', comment= None, skipfooter= 0, convert_float= None, mangle_dupe_cols= True, storage_options= None)
功能描述: 读取文件的数据,支持的文件类型有xlsxlsxxlsmxlsbodfodsodt
返回情况: 返回一个dataframe数据
参数说明:
io:文件路径
sheet_name:工作表 (可以传工作表名称、列表和index值)
header:指定工作表中哪一行作为dataframe的列名,如果不指定则传None
names:自定义dataframe的列名(会直接覆盖header)
index_col:指定dataframe数据中某列作为索引,可传入整数或列表
usecols:指定读取的列,默认None读取所有列,也可传入字符串 eg:“A:E"或"A,C”
squeeze:读取的数据如果是一列数据的话,设置True时会直接返回series类型,设置False时返回DataFrame类型
dtype:指定dataframe中数据的数据类型,一般用字典数据类型传入 eg:dtype={“age”:‘float’}
engine:设置读引擎,如果io参数中不是文件路径或缓冲器时,该值必须设置, {“xlrd”, “openpyxl”, “odf”, “pyxlsb”}
converters: 指定dataframe中数据的数据类型,一般用字典数据类型传入 {“name”:str,“sex”:str,“age”:float}
skiprow:设置跳过的行索引,即跳过几行开始读取数据
nrows:读取的数据的行数
keep_default_na:空内容是否默认为NaN
parse_dates:读取文件时按照指定的解析成日期格式的列
date_parser:读取数据时按照该设置解析成日期格式,{ True(解析成日期并作为结果的index),[index0,index1] 或 [‘column_name1’ ,‘column_name1’] (对指定列解析日期),[[0,1,2]] (对指定列的数据解析日期并组合成一列),{‘new_column_name’:[0,1,2] ((对指定列的数据解析日期并组合成一列,指定列名)}
后续工作中遇到再补充

2、写入数据

(1)写入至新文件

语法: df.to_excel(excel_writer, sheet_name= 'Sheet1', na_rep= '', float_format= None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None, storage_options= None)
功能描述: 将DataFrame数据写入excel表中
返回情况: 无返回
参数说明:
excel_writer:文件路径或ExcelWriter对象
sheet_name:工作表名
na_rep:缺失数据的填充值,不写默认为空
float_format:浮点数据输出格式,eg:%.2f
columns:要写入excel的列,可传入列表、序列或字符串
header:设置excel的表头数据,可以传入布尔类型、列表或字符串,如果为True时,DataFrame数据的列名写入excel中;如果为False时,DataFrame数据的列名不写入excel中。
index:是否写入行索引
index_label:设置行索引的标签名称,需header和index都设置为False时才生效,如果是多级索引可传入列表
startrow:设置数据写入到excel的第几行,传入整数
startcol:设置数据写入到excel的第几列,传入整数
engine:设置写入引擎,openpyxl 或 xlsxwriter
merge_cells:是否合并单元格
encoding:设置编码方式
后续工作中遇到再补充

(2)写入至已有文件(ExcelWriter类)

1、创建ExcelWriter对象

语法: pandas.ExcelWriter(path, engine= None, date_format= None, datetime_format= None, mode= ‘w’, storage_options= None, if_sheet_exists= None, engine_kwargs: ‘dict | None’ = None, **kwargs)
功能描述: 创建一个ExcelWriter对象
返回情况: 返回一个ExcelWriter对象
参数说明:
path:文件路径 | WriteExcelBuffer |ExcelWriter
engine:设置写入引擎,{“xlsxwriter”,“openpyxl”} 如果为None则默认"io.excel..writer"
date_format
datetime_format
mode:设置写或追加模式,{‘w’, ‘a’}
storage_options
if_sheet_exists:如果遇到sheet已存在时,需要如何处理,取值限制{'error'抛出异常, 'new'创建一个新的sheet, 'replace'删除原内容替换sheet, 'overlay'在原sheet中追加内容 }
engine_kwargs:传递给引擎的参数

ExcelWriter对象的属性及方法
引擎方法:ExcelWriter对象.engine
关闭ExcelWriter:ExcelWriter对象.close()
保存文件:ExcelWriter对象.save()
工作簿:ExcelWriter对象.book

2、写入数据
写入数据需要搭配to_excel

with pandas.ExcelWriter(path,mode='a') as w:    
	dataframe.to_excel(w,sheet_name='sheetname',index=False,header=False,startrow=2)
	w.save()

案例:提取数据到指定模板中

顺便记录下在工作中遇到的一个难题,pandas 1.4版本之前是不能对已有的文件作不删除原内容的基础下追加内容。由于系统设计要求,导入功能只能导入一条数据否则会报错,所以需要导入大量数据时需将每一条数据提取出来放入导入模板才能导入(即每个导入文件中只有一条数据)(涉及全部数据及业务纯属虚构)

在这里插入图片描述

import pandas as pd,os,numpy
#def write_data:
file_list=os.listdir('D:\\源数据')  # 数据从每个服务点报过来
n=0
for i in file_list:
    filename='D:\\源数据\\'+i
    data=pd.read_excel(filename,header=1)
    print(i)
    for j in range(len(data)):
        if j==len(data)-1:
            w_data=data[j-1:j]
        else:
            w_data=data[j:j+1]
        p='D:\\目标数据\\'+str(n)+'.xlsx'
        print('写完第%d个文件'%n)
        n=n+1
        with pd.ExcelWriter(p,mode='a',if_sheet_exists='overlay', engine="openpyxl") as writer:   # engine默认xlwt处理xls文件, openpyxl处理xlsx文件
            w_data.to_excel(writer,sheet_name='来穗信息数据',index=False,header=False,startrow=2)
            writer.save()

五、openpyxl库

openpyxl 库相比其他库,可以查单元格样式

1、安装与导入

pip install openpyxl

2、工作簿

(1)实例化工作簿对象

语法: Workbook() | load_workbook(文件路径)
功能描述: 创建一个空的工作簿或读取实例化一个工作簿
返回情况: 返回一个工作簿对象
前置条件: from openpyxl import Workbook | from openpyxl import load_workbook

(2)保存文件

语法: 工作簿对象.save(文件路径)
功能描述: 保存工作簿
前置条件: 实例化工作簿对象

(3)其他方法

获取所有工作表的名字: 工作簿对象.sheetnames
获取所有工作表: 工作簿对象.worksheets

3、工作表

(1)工作表对象

语法: 工作簿对象.create_sheet(sheet_name) | 工作簿对象[sheet_name]
功能描述: 创建一个空的工作表或读取一个工作表
返回情况: 返回一个工作表对象
前置条件: 实例化工作簿对象

4、单元格

(1)数据添加

语法: 工作表对象.append(iterable)
功能描述: 向工作表添加数据
参数列表:
iterable:可迭代对象,一行添加

(2)读取数据

语法: 工作表对象.values | 工作表对象["单元格位置"]
功能描述: 向工作表添加数据
参数列表:
单元格位置:可以是单个单元格也可以是多个单元格 ,如:‘A1’:‘C2’、‘C:D’、5:10、

(3)cell方法

语法: 工作表对象.cell( row, column, value=None)
功能描述: 向工作表中指定的单元格添加或读取数据
参数列表:
row:行
column:列
value:添加的值

(4)应用案例

# 读取文件中的数据,讲带有指定背景颜色的单元格内容复制到指定单元格中
import openpyxl
wb=openpyxl.load_workbook(r"c:\Users\admin\Desktop\11.xlsx")
ws=wb["Sheet1"]
for r in ws.iter_rows():  
    for cell in r:
        if cell.fill.fgColor.rgb=="FF00B050": # 背景颜色为绿色
            r=cell.row
            c=cell.column
            ws.cell(r+2,c-2,cell.value)
        elif cell.fill.fgColor.rgb=="FFFFC000":  # 背景颜色为黄色
            r=cell.row
            c=cell.column
            ws.cell(r+1,c-1,cell.value)
wb.save(r"c:\Users\admin\Desktop\11.xlsx")

附页

xlrd库 、xlwt库、 xlwings库三者区别

xlrd库 xlwt库 xlwings库
创建工作簿对象 open_workbook() Workbook() Book() / app.book.add() / app.books.open()
创建工作表对象 sheet_by_name() / sheet_by_index() / sheets()[ index] / 批量:sheets() add_sheet() / 没有sheets sheets[index/sheet_name] / 批量: sheets
操作单元格对象 cell(row,clo).value / cell_value(rowx= ,clox= ) write(row,clo,value) range("单元格位置").value
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python操作excel(xlrd、xlwt、xlwings、pandas、openpyxl) 的相关文章

  • 上传时的 Google Drive API——这些额外的空行从何而来?

    总结一下该程序 我从我的 Google 云端硬盘下载一个文件 然后在本地计算机中打开并读取一个文件 file a txt 然后在我的计算机中打开另一个文件 file b txt 处于附加模式 并且在使用这个新的 file b 更新我的 Go
  • 检测到通过 ChromeDriver 启动的 Chrome 浏览器

    我正在尝试在 python 中使用 selenium chromedriver 来访问 www mouser co uk 网站 然而 从第一次拍摄开始 它就被检测为机器人 有人对此有解释吗 此后我使用的代码 options Options
  • 如何在 Jupyter Notebook 中运行 Python 异步代码?

    我有一些 asyncio 代码在 Python 解释器 CPython 3 6 2 中运行良好 我现在想在具有 IPython 内核的 Jupyter 笔记本中运行它 我可以运行它 import asyncio asyncio get ev
  • TensorFlow:带有轴选项的 bincount

    在 TensorFlow 中 我可以使用 tf bincount 获取数组中每个元素的计数 x tf placeholder tf int32 None freq tf bincount x tf Session run freq feed
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • 在Python中如何获取字典的部分视图?

    是否有可能获得部分视图dict在Python中类似于pandasdf tail df head 说你有很长一段时间dict 而您只想检查某些元素 开头 结尾等 dict 就像是 dict head 3 To see the first 3
  • 从sklearn PCA获取特征值和向量

    如何获取 PCA 应用程序的特征值和特征向量 from sklearn decomposition import PCA clf PCA 0 98 whiten True converse 98 variance X train clf f
  • Pyqt-如何因另一个组合框数据而更改组合框数据?

    我有一个表 有 4 列 这 4 列中的两列是关于功能的 一个是特征 另一个是子特征 在每一列中 所有单元格都有组合框 我可以在这些单元格中打开txt 我想 当我选择电影院作为功能时 我只想看到子功能组合框中的电影名称 而不是我的 数据 中的
  • Python tkinter.filedialog Askfolder 干扰 clr

    我主要在 Spyder 中工作 构建需要弹出文件夹或文件浏览窗口的脚本 下面的代码在spyder中完美运行 在 Pycharm 中 askopenfilename工作良好 同时askdirectory什么都不做 卡住了 但是 如果在调试模式
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想
  • 揭秘sharedctypes性能

    在 python 中 可以在多个进程之间共享 ctypes 对象 然而我注意到分配这些对象似乎非常昂贵 考虑以下代码 from multiprocessing import sharedctypes as sct import ctypes
  • 对使用 importlib.util 导入的对象进行酸洗

    我在使用Python的pickle时遇到了一个问题 我需要通过将文件路径提供给 importlib util 来加载一些 Python 模块 如下所示 import importlib util spec importlib util sp
  • Python:我不明白 sum() 的完整用法

    当然 我明白你使用 sum 与几个数字 然后它总结所有 但我正在查看它的文档 我发现了这一点 sum iterable start 第二个参数 start 的作用是什么 这太尴尬了 但我似乎无法通过谷歌找到任何示例 并且对于尝试学习该语言的
  • Werkzeug 中的线程和本地代理。用法

    首先 我想确保我正确理解了功能的分配 分配本地代理功能以通过线程内的模块 包 共享变量 对象 我对吗 其次 用法对我来说仍然不清楚 也许是因为我误解了作业 我用烧瓶 如果我有两个 或更多 模块 A B 我想将对象C从模块A导入到模块B 但我
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • Flask 应用程序的测试覆盖率不起作用

    您好 想在终端的 Flask 应用程序中测试 删除路由 我可以看到测试已经过去 它说 test user delete test app LayoutTestCase ok 但是当我打开封面时 它仍然是红色的 这意味着没有覆盖它 请有人向我
  • falcon,AttributeError:“API”对象没有属性“create”

    我正在尝试测试我的猎鹰路线 但测试总是失败 而且看起来我把所有事情都做对了 my app py import falcon from resources static import StaticResource api falcon API
  • 带有 RotatingFileHandler 的 Python 3 记录器超出 maxBytes 限制

    我使用以下代码来限制日志文件的大小 最小示例 import logging from logging handlers import RotatingFileHandler Set up logfile and message loggin
  • [cocos2d-x]当我尝试在 Windows 10 中运行“python android-build.py -p 19 cpp-tests”时出现错误

    当我尝试运行命令时python android build p cpp tests 我收到如图所示的错误 在此之前 我收到了另一条关于 Android SDK Tools 版本兼容性的错误消息 所以 我只是将 sdk 版本从 26 0 0
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du

随机推荐

  • git命令总结

    1 git init 在当前目录下创建新的git仓库 2 git add filename 文件版本控制之前需要对这些文件进行追踪 对filename进行追踪 将文件添加进入缓存 3 git commit 提交更新 git commit a
  • IPv4 地址已耗尽,IPv6 涅槃重生:腾讯云IPv6改造综述

    引言 近日 全球 IPv4 地址正式耗尽的消息刷遍各大技术媒体 IPv6 再一次被推到人们面前 IP 作为网络世界的通行证 其重要性不言而喻 IPv4 地址枯竭 IPv6 作为IPv4地址枯竭的解决方案 其在中国的发展历程是怎样的 产品环环
  • 微信小程序开源项目精选

    本期为大家精选了码云上优秀的微信小程序开源项目 包括电商 博客 框架 建站系统 日常工具 图像识别等 希望能够给大家带来一点帮助 1 项目名称 微信电商小程序 作者 三三网络科技 项目简介 此项目是一套完整的电商系统 并且兼容各种电商场景可
  • 粒子滤波原理及其matlab仿真

    Github个人博客 https joeyos github io 粒子滤波原理及其matlab仿真 系统建模 粒子滤波算法不受线性高斯模型的约束 与卡尔曼滤波器一样 粒子滤波算法同样需要知道系统的模型 如果不知道系统的模型 也要想办法构建
  • Ubuntu 22.04 解决使用 .AppImage 文件方法

    AppImages 是一个文件系统 需要 FUSE 版本为 2 才能运行 但是 Ubuntu 22 04 的发行版本没有对其进行原始的配置的安装 重新安装并且配置即可 终端问题 未加载到 libfuse so 2 软连接 所以无法执行 Ap
  • C++对csv文件的读写

    include
  • 如何在线免费将MP4转换成MP3格式音乐

    MP4已经成为互联网上最流行的视频格式 我们从各种视频资源网站上下载到的视频文件大部分都是以MP4格式存储的 尤其是一些高品质的歌曲MV 为了达到在高压缩的前提下得到最好的质量 几乎都是mp4文件 但是如果你想直接在手机或者车上听这些歌曲
  • 【Mac】【Git】 全局配置 忽略 .DS_Store

    DS Store 是什么 Mac OS X 使用 DS Store 文件来存储文件夹特定的元数据信息 它们是在 Mac OS X Finder 访问的每个文件夹中创建的 甚至是网络宗卷和外部设备 文件夹级别的自定义存储在 DS Store
  • Vue锚链接(两种方法) scrollIntoView

    第一种 常见 锚链接 id和 href 结合起来 div style height 300px 第一 div div style height 300px 第二 div a href one 回到第一 a a href two 回到第二 a
  • 直流电源_滤波电路

    目录 前言 电容滤波电路 1 滤波原理 2 输出电压平均值 3 脉动系数 4 整流二极管的导通角 5 电容滤波电路的输出特性和滤波特性 倍压整流电路 其他形式的滤波电路 1 电感滤波电路 2 复式滤波电路 3 各种滤波电路的比较 前言 整流
  • 较好用的html5编译器

    一 BlueGriffon 基于 Firefox 渲染引擎的下一代 Web 和 EPUB 编辑器 链接 BlueGriffon 二 Aloha Editor 基于 所见即所得 的原则 HTML5 编辑器可以直接在门户网站上编辑网站 快速 简
  • 计算方法--解线性方程组的直接法

    文章目录 一 Gauss 消元法 1 顺序高斯消元法 总计算量 2 主元素高斯消元法 列主元素高斯消元法 3 高斯 约当 Gauss Jordan 消去法 总计算量 二 矩阵三角分解法 1 直接三角分解法 LU分解 Doolittle分解
  • WIN10安装后必做的优化,解决卡顿问题

    WIN10安装后必做的优化 解决卡顿问题
  • 储存过程之拉链表

    很多做数仓的朋友在面试的时候都会被问到 你写过的最难的存储过程是什么 这时候我们都会想到拉链表 拉链表真的那么难吗 下面我简单介绍一下拉链表作用 以及制作思路 希望可以帮到你 拉链表的作用 数据进行增量或者全量同步时 我们希望保留少数字段历
  • ELF文件格式的详解

    1 说明 2 elf文件的基本格式 3 elf文件的头部信息 4 elf文件的节区 Section 4 1 节区的作用 4 2 节区的组成 5 elf文件的段 Segment 6 用python解析elf文件 7 总结 1 说明 ELF的英
  • 设计模式之中介者模式

    中介者模式包装了一系列对象相互作用的方式 使得这些对象1不必相互明显作用 从而使它们可以松散耦合 当某些对象之间的作用发生改变时 不会立即影响到其他的一些对象之间的作用 保证这些作用可以彼此独立变化 中介者模式将多对多的相互作用转化为一对多
  • C语言函数程序实例(超全)

    目录 1 编写函数fun 功能是 计算n门课程的平均值 计算结果作为函数值返回 例如 若有5门课程的成绩是 92 76 69 58 88 则函数的值为76 599998 2 用函数将一个N阶方阵进行转置 输入输出在主函数中实现 使用for循
  • [QT编程系列-7]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义工具栏、状态栏、快捷键、图标

    目录 3 QT窗体设计 3 2 自定义工具栏 3 2 1 目标 3 2 2 实现过程 3 2 自定义状态栏 3 2 1 目标 3 2 2 过程 3 3 自定义动作快捷键 3 4 自定义图标 3 QT窗体设计 3 2 自定义工具栏 在Qt中
  • idea2023搜不到中文插件问题

    idea2023搜不到中文插件 可以考虑下载插件后本地安装 注意先看idea版本号 然后从官网下载离线汉化包 选择的版本等于或者低于idea版本号 1 离线汉化包下载地址 Chinese Simplified Language Pack 中
  • python操作excel(xlrd、xlwt、xlwings、pandas、openpyxl)

    文章目录 一 xlrd库 1 工作簿 book 1 创建工作簿对象 2 工作表 sheet 1 创建工作表对象 3 单元格 range 1 获取单个单元格的值 两种方法 2 获取单行或单列的值 4 获取工作表中的总行列数 二 xlwt库 1