Python酷库之旅-比翼双飞情侣库(02)

目录

一、xlrd库的由来

二、xlrd库优缺点

1、优点

1-1、支持多种Excel文件格式

1-2、高效性

1-3、开源性

1-4、简单易用

1-5、良好的兼容性

2、缺点

2-1、对.xlsx格式支持有限

2-2、功能相对单一

2-3、更新和维护频率低

2-4、依赖外部资源

三、xlrd库的版本说明

1、xlrd 1.2.0版本

2、xlrd 2.0.1版本

3、xlrd3(非官方名称)

四、如何学好xlrd库?

1、获取xlrd库的属性和方法

2、获取xlrd库的帮助信息

3、用法精讲

3-4、xlrd.FILE_FORMAT_DESCRIPTIONS字典

3-4-1、语法

3-4-2、参数

3-4-3、功能

3-4-4、返回值

3-4-5、说明

3-4-6、用法

3-5、xlrd.inspect_format函数

3-5-1、语法

3-5-2、参数

3-5-3、功能

3-5-4、返回值

3-5-5、说明

3-5-6、用法

3-6、xlrd.open_workbook函数

3-6-1、语法

3-6-2、参数

3-6-3、功能

3-6-4、返回值

3-6-5、说明  

3-6-6、用法

五、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、 博客个人主页

        在Excel中,通常所说的“情侣键”并非官方术语,而是对某些常用且经常成对出现的快捷键的一种形象化的称呼。其中,最为人熟知和广泛使用的“情侣键”是“Ctrl+C”和“Ctrl+V”。

1、Ctrl+C:这个快捷键的作用是“拷贝”或“复制”。当你在Excel中选中某个单元格、一行、一列或整个工作表的内容后,按下Ctrl+C键,这些内容就会被复制到计算机的剪贴板中,等待下一步的粘贴操作。
2、Ctrl+V:这个快捷键的作用是“粘贴”。在你按下Ctrl+C键将内容复制到剪贴板后,可以通过按下Ctrl+V键将这些内容粘贴到Excel中的另一个位置,这两个操作经常是连续进行的,因此Ctrl+C和Ctrl+V就像一对“情侣”,总是成对出现。

        除了这对常见的“情侣键”外,Excel中还有许多其他的快捷键可以帮助用户更高效地完成各种操作。然而,这些快捷键通常并没有像Ctrl+C和Ctrl+V那样形成特定的“情侣”关系。

        然而,今天我不再展开介绍“情侣键”,而是要重点推介Python中的“情侣库”,即xlrd和xlwt两个第三方库。

一、xlrd库的由来

        xlrd库是一种用于在Python中读取Excel文件的库,它的名称中的"xl"代表Excel,"rd"代表读取,其开发者是John Machin(注:库名字符拆分诠释,只是一种猜测)。

        xlrd最初是在2005年开始开发的,是基于Python的开源项目(下载:xlrd库官网下载)。

        由于Excel文件在数据处理和分析中的重要性,xlrd库填补了Python在处理Excel文件方面的空白,使得用户可以方便地在Python环境中读取Excel文件的内容,并进行进一步的数据操作和分析。

二、xlrd库

1、优点
1-1、支持多种Excel文件格式

        xlrd库支持多种Excel文件格式,包括`.xls`和`.xlsx`(在旧版本中),这使得无论数据存储在哪种格式的Excel文件中,用户都可以使用xlrd库来读取。


1-2、高效性

        xlrd库使用C语言编写,因此其性能非常高,即使面对非常大的Excel文件,xlrd也可以快速地读取其中的数据。


1-3、开源性

        xlrd是完全开源的,可以在GitHub等平台上找到其源代码,这使得任何人都可以根据自己的需求对其进行修改和扩展。


1-4、简单易用

        xlrd提供了简单直接的API来获取单元格数据、行列数等,使得从Excel文件中读取数据变得简单而高效。


1-5、良好的兼容性

        xlrd库适配多种Python版本,包括Python 2.7(不包括3.0-3.3)或Python 3.4及以上版本,这为用户提供了广泛的兼容性选择。

2、缺点
2-1、对.xlsx格式支持有限

        在xlrd 1.2.0之后的版本中(大约从2020年开始),xlrd库不再支持`.xlsx`文件格式,这限制了xlrd在新版Excel文件(主要是`.xlsx`格式)上的应用。


2-2、功能相对单一

        xlrd库主要专注于从Excel文件中读取数据,而不提供写入或修改Excel文件的功能,这使得在处理需要写入或修改Excel文件的任务时,用户需要结合其他库(如`openpyxl`或`xlwt`)使用。


2-3、更新和维护频率低

        由于xlrd库主要关注于读取Excel文件的功能,并且随着`.xlsx`格式的普及,其使用范围逐渐缩小,因此,xlrd库的更新和维护频率可能相对较低。


2-4、依赖外部资源

        在某些情况下,xlrd库可能需要依赖外部资源或库来完全发挥其功能,这可能会增加用户在使用xlrd库时的复杂性和不确定性。

        总之,xlrd库在读取Excel文件方面具有高效、开源和简单易用等优点,但在对`.xlsx`格式的支持、功能单一以及更新和维护频率等方面存在一些缺点,用户在选择使用xlrd库时需要根据自己的需求进行权衡和选择。

三、xlrd库的版本说明

        xlrd库适配的Python版本根据库的不同版本而有所不同。以下是针对几个主要版本的说明:

1、xlrd 1.2.0版本

1-1、适配Python>=2.7(不包括3.0-3.3)或Python>=3.4
1-2、该版本支持xlsx文件格式,并且是一个广泛使用的版本,因为它能够处理小到中等大小的Excel文件,并且具有较好的性能表现。

2、xlrd 2.0.1版本

2-1、适配Python>=2.7(不包括3.0-3.5)或Python>=3.6
2-2、该版本不再支持xlsx文件格式仅支持旧版的xls文件格式因为在xlrd 2.0版本之后,xlrd移除了对xlsx格式的支持。

3、xlrd3(非官方名称)

        xlrd3是xlrd的开源扩展库,提供了对xlsx文件格式的支持,然而,请注意,xlrd3并不是xlrd的官方名称(下载:https://github.com/Dragon2fly/xlrd3)。

四、如何学好xlrd库?

1、获取xlrd库的属性和方法

        用print()和dir()两个函数获取xlrd库所有属性和方法的列表

# ['Book', 'FILE_FORMAT_DESCRIPTIONS', 'FMLA_TYPE_ARRAY', 'FMLA_TYPE_CELL', 'FMLA_TYPE_COND_FMT', 'FMLA_TYPE_DATA_VAL',
# 'FMLA_TYPE_NAME', 'FMLA_TYPE_SHARED', 'Operand', 'PEEK_SIZE', 'Ref3D', 'XLDateError', 'XLRDError', 'XLS_SIGNATURE',
# 'XL_CELL_BLANK', 'XL_CELL_BOOLEAN', 'XL_CELL_DATE', 'XL_CELL_EMPTY', 'XL_CELL_ERROR', 'XL_CELL_NUMBER', 'XL_CELL_TEXT', 'ZIP_SIGNATURE', 
# '__VERSION__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', 
# '__spec__', '__version__', 
# 'biff_text_from_num', 'biffh', 'book', 'cellname', 'cellnameabs', 'colname', 'compdoc', 'count_records', 'decompile_formula', 
# 'dump', 'dump_formula', 'empty_cell', 'error_text_from_code', 'evaluate_name_formula', 'formatting', 'formula', 'info', 
# 'inspect_format', 'oBOOL', 'oERR', 'oNUM', 'oREF', 'oREL', 'oSTRG', 'oUNK', 'okind_dict', 'open_workbook', 'open_workbook_xls', 
# 'os', 'pprint', 'rangename3d', 'rangename3drel', 'sheet', 'sys', 'timemachine', 'xldate', 'xldate_as_datetime', 'xldate_as_tuple', 'zipfile']
2、获取xlrd库的帮助信息

        用help()函数获取xlrd库的帮助信息

Help on package xlrd:

NAME
    xlrd

DESCRIPTION
    # Copyright (c) 2005-2012 Stephen John Machin, Lingfo Pty Ltd
    # This module is part of the xlrd package, which is released under a
    # BSD-style licence.

PACKAGE CONTENTS
    biffh
    book
    compdoc
    formatting
    formula
    info
    sheet
    timemachine
    xldate

FUNCTIONS
    count_records(filename, outfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)
        For debugging and analysis: summarise the file's BIFF records.
        ie: produce a sorted file of ``(record_name, count)``.
        
        :param filename: The path to the file to be summarised.
        :param outfile: An open file, to which the summary is written.
    
    dump(filename, outfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, unnumbered=False)
        For debugging: dump an XLS file's BIFF records in char & hex.
        
        :param filename: The path to the file to be dumped.
        :param outfile: An open file, to which the dump is written.
        :param unnumbered: If true, omit offsets (for meaningful diffs).
    
    inspect_format(path=None, content=None)
        Inspect the content at the supplied path or the :class:`bytes` content provided
        and return the file's type as a :class:`str`, or ``None`` if it cannot
        be determined.
        
        :param path:
          A :class:`string <str>` path containing the content to inspect.
          ``~`` will be expanded.
        
        :param content:
          The :class:`bytes` content to inspect.
        
        :returns:
           A :class:`str`, or ``None`` if the format cannot be determined.
           The return value can always be looked up in :data:`FILE_FORMAT_DESCRIPTIONS`
           to return a human-readable description of the format found.
    
    open_workbook(filename=None, logfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, verbosity=0, use_mmap=True, file_contents=None, encoding_override=None, formatting_info=False, on_demand=False, ragged_rows=False, ignore_workbook_corruption=False)
        Open a spreadsheet file for data extraction.
        
        :param filename: The path to the spreadsheet file to be opened.
        
        :param logfile: An open file to which messages and diagnostics are written.
        
        :param verbosity: Increases the volume of trace material written to the
                          logfile.
        
        :param use_mmap:
        
          Whether to use the mmap module is determined heuristically.
          Use this arg to override the result.
        
          Current heuristic: mmap is used if it exists.
        
        :param file_contents:
        
          A string or an :class:`mmap.mmap` object or some other behave-alike
          object. If ``file_contents`` is supplied, ``filename`` will not be used,
          except (possibly) in messages.
        
        :param encoding_override:
        
          Used to overcome missing or bad codepage information
          in older-version files. See :doc:`unicode`.
        
        :param formatting_info:
        
          The default is ``False``, which saves memory.
          In this case, "Blank" cells, which are those with their own formatting
          information but no data, are treated as empty by ignoring the file's
          ``BLANK`` and ``MULBLANK`` records.
          This cuts off any bottom or right "margin" of rows of empty or blank
          cells.
          Only :meth:`~xlrd.sheet.Sheet.cell_value` and
          :meth:`~xlrd.sheet.Sheet.cell_type` are available.
        
          When ``True``, formatting information will be read from the spreadsheet
          file. This provides all cells, including empty and blank cells.
          Formatting information is available for each cell.
        
          Note that this will raise a NotImplementedError when used with an
          xlsx file.
        
        :param on_demand:
        
          Governs whether sheets are all loaded initially or when demanded
          by the caller. See :doc:`on_demand`.
        
        :param ragged_rows:
        
          The default of ``False`` means all rows are padded out with empty cells so
          that all rows have the same size as found in
          :attr:`~xlrd.sheet.Sheet.ncols`.
        
          ``True`` means that there are no empty cells at the ends of rows.
          This can result in substantial memory savings if rows are of widely
          varying sizes. See also the :meth:`~xlrd.sheet.Sheet.row_len` method.
        
        
        :param ignore_workbook_corruption:
        
          This option allows to read corrupted workbooks.
          When ``False`` you may face CompDocError: Workbook corruption.
          When ``True`` that exception will be ignored.
        
        :returns: An instance of the :class:`~xlrd.book.Book` class.

DATA
    FILE_FORMAT_DESCRIPTIONS = {'xls': 'Excel xls', 'xlsb': 'Excel 2007 xl...
    FMLA_TYPE_ARRAY = 4
    FMLA_TYPE_CELL = 1
    FMLA_TYPE_COND_FMT = 8
    FMLA_TYPE_DATA_VAL = 16
    FMLA_TYPE_NAME = 32
    FMLA_TYPE_SHARED = 2
    PEEK_SIZE = 8
    XLS_SIGNATURE = b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1'
    XL_CELL_BLANK = 6
    XL_CELL_BOOLEAN = 4
    XL_CELL_DATE = 3
    XL_CELL_EMPTY = 0
    XL_CELL_ERROR = 5
    XL_CELL_NUMBER = 2
    XL_CELL_TEXT = 1
    ZIP_SIGNATURE = b'PK\x03\x04'
    __VERSION__ = '2.0.1'
    biff_text_from_num = {0: '(not BIFF)', 20: '2.0', 21: '2.1', 30: '3', ...
    empty_cell = empty:''
    error_text_from_code = {0: '#NULL!', 7: '#DIV/0!', 15: '#VALUE!', 23: ...
    oBOOL = 3
    oERR = 4
    oNUM = 2
    oREF = -1
    oREL = -2
    oSTRG = 1
    oUNK = 0
    okind_dict = {-2: 'oREL', -1: 'oREF', 0: 'oUNK', 1: 'oSTRG', 2: 'oNUM'...

VERSION
    2.0.1

FILE
    e:\python_workspace\pythonproject\lib\site-packages\xlrd\__init__.py
3、用法精讲
3-4、xlrd.FILE_FORMAT_DESCRIPTIONS字典
3-4-1、语法
xlrd.FILE_FORMAT_DESCRIPTIONS= {'xls': 'Excel xls', 'xlsb': 'Excel 2007 xlsb file', 'xlsx': 'Excel xlsx file', 'ods': 'Openoffice.org ODS file', 'zip': 'Unknown ZIP file', None: 'Unknown file type'}
3-4-2、参数

        无

3-4-3、功能

         用于在尝试打开文件时给出更友好的错误消息,告诉用户为什么文件不能被打开(例如,因为文件格式不受支持)。

3-4-4、返回值

        返回一个字符串消息或None。

3-4-5、说明

        该字典的键(keys)是文件格式的标识符,而值(values)是对应的描述性字符串。

3-4-6、用法
# 4、xlrd.FILE_FORMAT_DESCRIPTIONS字典
# 4-1、查看字典信息
import xlrd
# 查看 FILE_FORMAT_DESCRIPTIONS 的内容
print(xlrd.FILE_FORMAT_DESCRIPTIONS)
# 输出:{'xls': 'Excel xls', 'xlsb': 'Excel 2007 xlsb file', 'xlsx': 'Excel xlsx file', 'ods': 'Openoffice.org ODS file', 'zip': 'Unknown ZIP file', None: 'Unknown file type'}

# 4-2、应用示例
import xlrd
import os
def open_excel_file(filename):
    # 获取文件的扩展名
    _, ext = os.path.splitext(filename)
    ext = ext.lower()[1:]  # 去掉点号,并转换为小写
    # 检查文件扩展名是否在FILE_FORMAT_DESCRIPTIONS中
    if ext not in xlrd.FILE_FORMAT_DESCRIPTIONS:
        print(f"Unsupported file type: {ext}.")
        print(f"Supported file types: {', '.join(xlrd.FILE_FORMAT_DESCRIPTIONS.keys())}")
        return None
    try:
        # 尝试打开文件
        workbook = xlrd.open_workbook(filename)
        print(f"Opened {xlrd.FILE_FORMAT_DESCRIPTIONS[ext]} successfully.")
        return workbook
    except Exception as e:
        print(f"Error opening file: {e}")
        return None
if __name__ == '__main__':
    filename = r'E:\360Downloads\test.xls'  # 替换为你的Excel文件路径,我的路径为:E:\360Downloads\test.xls
    workbook = open_excel_file(filename)
    if workbook:
        # 如果文件成功打开,你可以在这里继续处理 workbook 对象
        pass
3-5、xlrd.inspect_format函数
3-5-1、语法
xlrd.inspect_format(path=None, content=None)
3-5-2、参数

3-5-2-1、path(可选)表示要检查的内容的字符串路径。默认值为None,若遇到~(波浪号)将会被展开。

3-5-2-2、content(可选)表示要检查的字节内容,默认值为None。

3-5-3、功能

        检查提供的路径下的内容或提供的字节内容,并返回文件的类型作为字符串,如果无法确定则返回None。

3-5-4、返回值

        返回一个字符串或None(如果无法确定格式)。

3-5-5、说明

        无

3-5-6、用法
#  5、xlrd.inspect_format函数
import xlrd
import os
# FILE_FORMAT_DESCRIPTIONS字典信息
FILE_FORMAT_DESCRIPTIONS = {'xls': 'Excel xls', 'xlsb': 'Excel 2007 xlsb file', 'xlsx': 'Excel xlsx file',
                            'ods': 'Openoffice.org ODS file', 'zip': 'Unknown ZIP file', None: 'Unknown file type'}
def inspect_format(path=None, content=None):
    # 为了简单起见,我们仅检查文件扩展名(这在实际中并不准确)
    if path is not None:
        # 假设 ~ 已被展开(在实际代码中,你可能需要使用os.path.expanduser来处理~)
        _, ext = os.path.splitext(path)
        ext = ext.lower()
        if ext in ['.xls', '.xlsx']:
            return ext[1:]  # 去掉点号,返回 'xls' 或 'xlsx'
    elif content is not None:
        # 在这里,我们可以添加更复杂的逻辑来检查字节内容
        # 但为了简单起见,我们仅返回一个占位符值
        return 'unknown'  # 假设我们无法仅通过内容确定格式
    return None  # 如果 path 和 content 都未提供,返回 None
if __name__ == '__main__':
    # 使用文件路径
    file_path = r'E:\360Downloads\test.xls'
    file_type = inspect_format(path=file_path)
    print(f"File type: {file_type}")
    print(f"Description: {FILE_FORMAT_DESCRIPTIONS.get(file_type, FILE_FORMAT_DESCRIPTIONS['zip'])}")
    # 使用字节内容(这通常不是实际用法,但为了演示)
    # 注意:在实际中,你通常不会直接传递字节内容来确定文件类型
    content_bytes = b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1...'  # 假设的XLS文件开头字节
    file_type_from_content = inspect_format(content=content_bytes)
    print(f"File type from content: {file_type_from_content}")
    print(f"Description: {FILE_FORMAT_DESCRIPTIONS.get(file_type_from_content, FILE_FORMAT_DESCRIPTIONS['zip'])}")
3-6、xlrd.open_workbook函数
3-6-1、语法
xlrd.open_workbook(filename=None, logfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, verbosity=0, use_mmap=True, file_contents=None, encoding_override=None, formatting_info=False, on_demand=False, ragged_rows=False, ignore_workbook_corruption=False)
3-6-2、参数

3-6-2-1、filename(必须)指定要打开的Excel文件的路径和文件名。

3-6-2-2、logfile(可选)指定要将日志消息写入的文件或文件句柄,缺省值为sys.stdout

3-6-2-3、verbosity(可选)指定日志输出的详细程度,值越大日志越详细。

3-6-2-4、use_mmap(可选)指定是否使用内存映射文件来访问Excel文件,默认值为0(不使用)。

3-6-2-5、file_contents(可选)指定一个二进制字符串,如果指定则表示将这个字符串作为Excel文件内容传入。

3-6-2-6、encoding_override(可选)指定用于解码文本字符串的字符集。

3-6-2-7、formatting_info(可选)指定是否保留Excel文件中的格式信息,如果值为True,则会在返回的Workbook对象中保留单元格的格式信息。

3-6-2-8、on_demand(可选)控制是否一开始就加载所有工作表,还是根据调用者的需求进行加载。

3-6-2-9、ragged_rows(可选)指定是否以'lazy'模式打开文件(即只在数据被显式请求时才读取数据),默认值为False。

3-6-2-10、ignore_workbook_corruption(可选)指定是否保留Excel文件中某些行可能比其他行短的情况,默认值为False。

3-6-3、功能

        主要作用是打开指定的Excel文件,并为其后续的数据读取做好准备。

3-6-4、返回值

        返回一个工作簿的实例对象。这个对象提供了许多方法和属性,用于访问和操作 Excel 文件中的数据。

3-6-5、说明  

        logfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>是一个在Python中表示文件或流对象的字符串描述。具体讲,这涉及到Python的io模块的TextIOWrapper类。

让我们分解这个描述:

3-6-5-1、io.TextIOWrapper

        这是Python内部用于处理文本文件或文本流的类。当你使用如open()函数打开一个文件以文本模式(例如'r'、'w'、'a'等)时,你通常会得到一个TextIOWrapper的实例。

3-6-5-2、name='<stdout>'

        这表示该流或文件对象与标准输出(`stdout`)相关联。在Python中,sys.stdout是一个常用的文件对象,它代表了程序的标准输出,通常连接到终端或命令行界面。

3-6-5-3、mode='w'

        这表示该文件或流以写入模式打开。在写入模式下,你可以向文件或流写入数据,但通常不能读取数据(除非文件是以追加模式'a'打开的)。

3-6-5-4、encoding='utf-8'

        这指定了文本数据的编码方式。`utf-8`是一种常用的编码方式,能够表示世界上大多数语言的字符。

3-6-6、用法
# 6、xlrd.open_workbook函数
import xlrd
# 定义Excel文件的路径
file_path = r'E:\360Downloads\test.xls' # 替换为你的Excel文件路径,我的路径为:E:\360Downloads\test.xls
# 使用xlrd.open_workbook打开Excel文件
workbook = xlrd.open_workbook(file_path)
# 获取第一个工作表(在Excel中通常是Sheet1)
sheet = workbook.sheet_by_index(0)  # 或者使用sheet_by_name('Sheet1')
# 获取工作表的行数和列数
nrows = sheet.nrows
ncols = sheet.ncols
# 打印工作表的行数和列数
print(f"工作表有 {nrows} 行和 {ncols} 列")
# 遍历工作表的每一行和每一列,并打印内容
for row_idx in range(nrows):
    row = sheet.row_values(row_idx)  # 获取当前行的所有单元格值
    for col_idx, cell_value in enumerate(row):
        # 打印单元格的值(注意:这里只是简单打印,实际使用中可能需要进行更复杂的处理)
        print(f"行 {row_idx + 1}, 列 {col_idx + 1}: {cell_value}")
    print()  # 打印一个空行,以便区分不同的行
# 注意:在大多数情况下,不需要显式关闭workbook,因为Python的垃圾回收机制会处理它
# 但如果你需要确保资源被立即释放,可以调用workbook.release_resources()
# workbook.release_resources()

五、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、 博客个人主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/705745.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

盘点|AI大模型时代,2024医疗器械网络安全应对与挑战(上)

6月5日&#xff0c;以“AI驱动安全”为主题&#xff0c;2024全球数字经济大会数字安全高层论坛&#xff0c;暨北京网络安全大会战略峰会在北京国家会议中心开幕。 与会专家指出&#xff0c;攻击者可利用人工智能技术生成网络攻击和网络钓鱼工具&#xff0c;网络安全从人人对抗、…

多模态大模型:识别和处理图片与视频的技术详解

多模态大模型&#xff1a;识别和处理图片与视频的技术详解 多模态大模型&#xff1a;识别和处理图片与视频的技术详解1. 什么是多模态大模型&#xff1f;2. 多模态大模型的基本架构3. 识别和处理图片3.1 图像特征提取3.2 图像分类与识别3.3 图像生成与增强 4. 识别和处理视频4.…

【个人博客搭建】(25)做一个图形验证码功能

在系统的注册、登录等场景&#xff0c;都有很多类似的案例。也有类似于滑动验证、选字顺序验证等效果。今天带来的是文件流形式的&#xff0c;相当于动态图片吧 1、安装nuget包&#xff1a;Lazy.Captcha.Core 2、 在入口文件中注入&#xff1a; #region 图形验证码builder.Ser…

Spring对事务的支持

一、事务 事务防止进行操作时&#xff0c;数据库里面的数据丢失。 二、Spring事务注解方式 注解方式&#xff1a;在配置文件中配置事务管理器&#xff0c;利用注解&#xff0c;管理事务。 实例 银行转账&#xff1a;一个账户向另一个账户转账。 1&#xff09;先在数据库my…

串联谐振回路

等效电路 电感的损耗电阻&#xff0c;频率越高越大&#xff0c;与电感串联&#xff0c;会分走电压&#xff0c;不可忽略。 电容的漏电电阻&#xff0c;等效阻值大&#xff0c;与电容并联&#xff0c;高频时&#xff0c;电容容抗小&#xff0c;漏电电阻几乎分不走电流&#xf…

找不到libcef.dll是怎么回事?libcef.dll丢失的6种修复方法

在使用电脑的过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是“电脑提示libcef.dll丢失”。这个问题可能让人感到困惑和烦恼&#xff0c;但通过了解其原因和解决方法&#xff0c;我们可以更好地应对类似的问题。在本文中&#xff0c;我将分享我对于“电…

QML Canvas 代码演示

一、文字阴影 / 发光 Canvas{id: root; width: 400; height: 400onPaint: //所有的绘制都在onPaint中{var ctx getContext("2d") //获取上下文// 绘制带阴影的文本ctx.fillStyle "#333" //设置填充颜色ctx.fillRect(0, 0, root.width, root.height…

Fluid 1.0 版发布,打通云原生高效数据使用的“最后一公里”

作者&#xff1a;顾荣 前言 得益于云原生技术在资源成本集约、部署运维便捷、算力弹性灵活方面的优势&#xff0c;越来越多企业和开发者将数据密集型应用&#xff0c;特别是 AI 和大数据领域应用&#xff0c;运行于云原生环境中。然而&#xff0c;云原生计算与存储分离架构虽…

【数字化转型,销售先行】销售的数字化转型需要做哪些工作?

引言&#xff1a;销售进行数字化转型的背景主要包括市场环境的快速变化、新技术发展的推动、企业发展的需求以及数据驱动决策的需求。这些背景因素共同促使企业加快数字化转型步伐&#xff0c;以适应市场变化、提升竞争力并实现可持续发展。 销售的数字化转型包含哪些内容&…

Qt飞机大战小游戏

Gitee地址 &#xff1a;plane-game: 基于Qt的飞机大战小游戏 GitHub地址&#xff1a; https://github.com/a-mo-xi-wei/plane-game

群晖NAS安装配置Joplin Server用来存储同步Joplin笔记内容

一、Joplin Server简介 1.1、Joplin Server介绍 Joplin支持多种方式进行同步用户的笔记数据&#xff08;如&#xff1a;Joplin自己提供的收费的云服务Joplin Cloud&#xff0c;还有第三方的云盘如Dropbox、OneDrive&#xff0c;还有自建的云盘Nextcloud、或者通过WebDAV协议来…

-bash: unzip: command not found

1、报错截图如下 2、解决办法 yum install unzip

【Python/Pytorch - 网络模型】-- 手把手搭建3D VGG感知损失模型

文章目录 文章目录 00 写在前面01 基于Pytorch版本的3D VGG代码02 论文下载 00 写在前面 感知损失&#xff1a;对于提升图片的肉眼可见细节&#xff0c;效果十分明显&#xff1b;对于一些指标如&#xff08;SSIM、PSNR&#xff09;这些&#xff0c;效果不明显。 在01中&…

微服务之远程调用

常见的远程调用方式 RPC&#xff1a;Remote Produce Call远程过程调用&#xff0c;类似的还有 。自定义数据格式&#xff0c;基于原生TCP通信&#xff0c;速度快&#xff0c;效率高。早期的webservice&#xff0c;现在热门的dubbo &#xff08;12不再维护、17年维护权交给apac…

A+B依旧可以卷!多尺度特征融合+注意力机制,新SOTA准确率高达99%

在处理复杂实际问题时&#xff0c;我们可以结合多尺度特征融合和注意力机制&#xff0c;让模型不仅能从多个尺度上捕获丰富的特征信息&#xff0c;还可以专注于输入中的关键部分&#xff0c;来提高模型的泛化能力和性能。 具体到图像处理领域&#xff0c;这种方法就是允许模型…

风控中的文本相似方法之余弦定理

一、 余弦相似概述 余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1&#xff0c;而其他任何角度的余弦值都不大于1&#xff1b;并且其最小值是-1。 从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。结果是与向量的长…

重新安装TortoiseGit后提示权限错误问题解决

今天在Windows11系统中下载安装使用TortoiseGit可视化Git工具&#xff0c;进行代码提交管理。 由于电脑之前是一位开发人员在使用&#xff0c;所以曾经安装使用过这个工具。 重新安装好软件后&#xff0c;在coding网站中复制代码路径后&#xff0c;在本地目录通过鼠标右键选择…

WPF/C#:异常处理

什么是异常&#xff1f; 在C#中&#xff0c;异常是在程序执行过程中发生的特殊情况&#xff0c;例如尝试除以零、访问不存在的文件、网络连接中断等。这些情况会中断程序的正常流程。 当C#程序中发生这种特殊情况时&#xff0c;会创建一个异常对象并将其抛出。这个异常对象包…

Go微服务框架Kratos中makefile命令的使用方法及报错处理

运用 kratos 微服务框架开发项目时&#xff0c;可以使用提供的 makefile 中的命令自动且快速生产相关代码&#xff0c;提高开发效率。 krotos中makefile文件内容如下&#xff1a; GOHOSTOS:$(shell go env GOHOSTOS) GOPATH:$(shell go env GOPATH) VERSION$(shell git descri…

翻译英文文献工具

翻译英文文献工具 1. zotero1. 安装zotero2. 安装pdf翻译器2.1. 查看zotero版本2.2. 下载对应的pdf翻译器插件版本2.3. 安装插件2.4. 使用插件 2. 小绿鲸英文文献阅读器1. 安装2. 使用 1. zotero 1. 安装zotero 官网&#xff1a; https://www.zotero.org/ 一键next默认安装就…