Python酷库之旅-第三方库Pandas(014)

目录

一、用法精讲

34、pandas.DataFrame.to_parquet函数

34-1、语法

34-2、参数

34-3、功能

34-4、返回值

34-5、说明

34-6、用法

34-6-1、数据准备

34-6-2、代码示例

34-6-3、结果输出

35、pandas.read_sql_table函数

35-1、语法

35-2、参数

35-3、功能

35-4、返回值

35-5、说明

35-6、用法

35-6-1、数据准备

35-6-2、代码示例

35-6-3、结果输出 

36、pandas.read_sql_query函数

36-1、语法

36-2、参数

36-3、功能

36-4、返回值

36-5、说明

36-6、用法

36-6-1、数据准备

36-6-2、代码示例

36-6-3、结果输出 

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

34、pandas.DataFrame.to_parquet函数
34-1、语法
# 34、pandas.DataFrame.to_parquet函数
DataFrame.to_parquet(path=None, *, engine='auto', compression='snappy', index=None, partition_cols=None, storage_options=None, **kwargs)
Write a DataFrame to the binary parquet format.

This function writes the dataframe as a parquet file. You can choose different parquet backends, and have the option of compression. See the user guide for more details.

Parameters:
path
str, path object, file-like object, or None, default None
String, path object (implementing os.PathLike[str]), or file-like object implementing a binary write() function. If None, the result is returned as bytes. If a string or path, it will be used as Root Directory path when writing a partitioned dataset.

engine
{‘auto’, ‘pyarrow’, ‘fastparquet’}, default ‘auto’
Parquet library to use. If ‘auto’, then the option io.parquet.engine is used. The default io.parquet.engine behavior is to try ‘pyarrow’, falling back to ‘fastparquet’ if ‘pyarrow’ is unavailable.

compression
str or None, default ‘snappy’
Name of the compression to use. Use None for no compression. Supported options: ‘snappy’, ‘gzip’, ‘brotli’, ‘lz4’, ‘zstd’.

index
bool, default None
If True, include the dataframe’s index(es) in the file output. If False, they will not be written to the file. If None, similar to True the dataframe’s index(es) will be saved. However, instead of being saved as values, the RangeIndex will be stored as a range in the metadata so it doesn’t require much space and is faster. Other indexes will be included as columns in the file output.

partition_cols
list, optional, default None
Column names by which to partition the dataset. Columns are partitioned in the order they are given. Must be None if path is not a string.

storage_options
dict, optional
Extra options that make sense for a particular storage connection, e.g. host, port, username, password, etc. For HTTP(S) URLs the key-value pairs are forwarded to urllib.request.Request as header options. For other URLs (e.g. starting with “s3://”, and “gcs://”) the key-value pairs are forwarded to fsspec.open. Please see fsspec and urllib for more details, and for more examples on storage options refer here.

**kwargs
Additional arguments passed to the parquet library. See pandas io for more details.

Returns:
bytes if no path argument is provided else None.
34-2、参数

34-2-1、path(可选,默认值为None)指定要写入Parquet文件的路径。如果为None,则不会将DataFrame保存到文件,但通常会通过其他方式(如返回字节流)使用生成的Parquet数据。

34-2-2、engine(可选,默认值为'auto')指定用于写入Parquet文件的引擎。'auto'会自动选择可用的库(优先使用pyarrow,如果没有安装则使用fastparquet),'pyarrow'和 'fastparquet'是两个流行的Parquet库,各有特点和性能差异。

34-2-3、compression(可选,默认值为'snappy')指定用于Parquet文件的压缩方法,'snappy'是一种快速压缩算法,适合大多数情况,'gzip'和'brotli'提供更高的压缩率,但可能会降低写入和读取速度。如果设置为None,则不压缩数据。

34-2-4、index(可选,默认值为None)控制是否将DataFrame的索引写入Parquet文件。如果为True,则索引会被写入Parquet文件的_index列;如果为False,则不会写入索引;如果为None(默认值),则行为取决于engine的默认设置。

34-2-5、partition_cols(可选,默认值为None)指定用于分区的列名列表,分区是一种将表数据分割成更小、更易于管理的部分的技术,通常基于某些列的值,这有助于查询性能优化和数据管理。

34-2-6、storage_options(可选,默认值为None)用于配置存储选项的字典,如文件系统、认证信息等,这通常用于云存储服务(如AWS S3、Google Cloud Storage)或需要特殊配置的文件系统。

34-2-7、**kwargs(可选)其他关键字参数将传递给底层的Parquet引擎,这些参数依赖于所使用的引擎(pyarrow 或 fastparquet),并允许对写入过程进行更详细的控制。

34-3、功能

        将Pandas DataFrame对象写入Parquet文件格式。

34-4、返回值

34-4-1、如果提供了路径path参数,则to_parquet函数通常不会返回任何值(即返回值为None),这是因为数据已经被写入到指定的Parquet文件中。

34-4-2、如果没有提供路径参数,或者使用了类似io.BytesIO的对象作为路径,则函数会返回一个包含Parquet文件内容的字节流对象,这允许用户在不实际写入文件的情况下,将Parquet数据传输到其他系统或进行进一步处理。

34-5、说明

        Parquet是一种列式存储格式,特别适用于大规模数据集的高效存储和查询,相比于传统的行式存储格式,Parquet提供了更高的压缩率和更快的读取速度。

34-6、用法
34-6-1、数据准备
34-6-2、代码示例
# 34、pandas.DataFrame.to_parquet函数
import pandas as pd
# 创建一个示例DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# 指定Parquet文件的保存路径
parquet_path = 'example.parquet'
# 使用to_parquet方法将DataFrame保存到Parquet文件
# 这里我们使用了默认的'snappy'压缩和'auto'引擎(通常会选择'pyarrow'如果已安装)
df.to_parquet(parquet_path, index=False)  # index=False 表示不将索引写入Parquet文件
# 注意:此时文件已经被保存到当前工作目录下的'example.parquet'文件中
# 你可以使用pandas.read_parquet来验证文件内容
# 读取Parquet文件以验证
read_back_df = pd.read_parquet(parquet_path)
print(read_back_df)
34-6-3、结果输出
# 34、pandas.DataFrame.to_parquet函数
#       Name  Age         City
# 0    Alice   25     New York
# 1      Bob   30  Los Angeles
# 2  Charlie   35      Chicago
35、pandas.read_sql_table函数
35-1、语法
# 35、pandas.read_sql_table函数
pandas.read_sql_table(table_name, con, schema=None, index_col=None, coerce_float=True, parse_dates=None, columns=None, chunksize=None, dtype_backend=_NoDefault.no_default)
Read SQL database table into a DataFrame.

Given a table name and a SQLAlchemy connectable, returns a DataFrame. This function does not support DBAPI connections.

Parameters:
table_namestr
Name of SQL table in database.

conSQLAlchemy connectable or str
A database URI could be provided as str. SQLite DBAPI connection mode not supported.

schemastr, default None
Name of SQL schema in database to query (if database flavor supports this). Uses default schema if None (default).

index_colstr or list of str, optional, default: None
Column(s) to set as index(MultiIndex).

coerce_floatbool, default True
Attempts to convert values of non-string, non-numeric objects (like decimal.Decimal) to floating point. Can result in loss of Precision.

parse_dateslist or dict, default None
List of column names to parse as dates.

Dict of {column_name: format string} where format string is strftime compatible in case of parsing string times or is one of (D, s, ns, ms, us) in case of parsing integer timestamps.

Dict of {column_name: arg dict}, where the arg dict corresponds to the keyword arguments of pandas.to_datetime() Especially useful with databases without native Datetime support, such as SQLite.

columnslist, default None
List of column names to select from SQL table.

chunksizeint, default None
If specified, returns an iterator where chunksize is the number of rows to include in each chunk.

dtype_backend{‘numpy_nullable’, ‘pyarrow’}, default ‘numpy_nullable’
Back-end data type applied to the resultant DataFrame (still experimental). Behaviour is as follows:

"numpy_nullable": returns nullable-dtype-backed DataFrame (default).

"pyarrow": returns pyarrow-backed nullable ArrowDtype DataFrame.

New in version 2.0.

Returns:
DataFrame or Iterator[DataFrame]
A SQL table is returned as two-dimensional data structure with labeled axes.
35-2、参数

35-2-1、table_name(必须)要从数据库中读取的表的名称。

35-2-2、con(必须)用于数据库连接的对象,通常是一个SQLAlchemy的engine对象。

35-2-3、schema(可选,默认值为None)指定表的schema(模式),在大多数SQL数据库中schema是用于组织数据库对象(如表、视图等)的命名空间,不是所有数据库都支持schema,MySQL默认不支持,而PostgreSQL支持。

35-2-4、index_col(可选,默认值为None)将一列或多列作为返回的DataFrame的索引。默认情况下(None),不设置索引。如果指定了单个列名,则将该列用作索引;如果指定了列名的列表,则将这些列用作多级索引。

35-2-5、coerce_float(可选,默认值为True)尝试将非字符串、非数字对象转换为浮点数,如果设置为False,则不会进行这种转换。

35-2-6、parse_dates(可选,默认值为None)指定要解析为日期时间类型的列,可以是一个列名的列表,也可以是一个字典,其中键是列名,值是要用于解析日期的格式字符串,如果设置为None(默认值),则不解析任何列。

35-2-7、columns(可选,默认值为None)指定要从表中读取的列名列表,如果为None(默认值),则读取所有列。

35-2-8、chunksize(可选,默认值为None)如果指定了,则返回一个迭代器,该迭代器每次产生指定大小的DataFrame块,这对于处理大型数据集非常有用,因为它允许你在不将所有数据一次性加载到内存中的情况下逐块处理数据。如果为None(默认值),则一次性返回整个DataFrame。

35-2-9、dtype_backend(可选)内部调用,通常不需要用户直接设置。

35-3、功能

        从SQL数据库中读取指定的表,并将该表的数据加载到一个pandas DataFrame中。

35-4、返回值

        返回值是一个pandas DataFrame,这个DataFrame包含了从指定SQL表中检索到的数据,并根据提供的参数进行了相应的转换和解析。

35-5、说明

        DataFrame是一个二维、大小可变的、潜在的异构表格数据结构,具有标记的轴(行和列),它类似于Excel中的表格或SQL表,但更灵活,因为pandas提供了大量的数据处理和分析功能。

35-6、用法
35-6-1、数据准备
# 确保已经安装了sqlalchemy库
# 1、创建数据库表
from sqlalchemy import create_engine, Column, Integer, String, MetaData
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 数据库连接配置(使用 SQLAlchemy 的 URI 格式)
DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1/test_database?charset=utf8mb4'
# 创建一个引擎实例
engine = create_engine(DATABASE_URI, echo=True)  # echo=True 用于显示生成的 SQL 语句,调试时可以打开
# 创建基类
Base = declarative_base()
# 定义模型类
class MyElsaTable(Base):
    __tablename__ = 'myelsa_table'
    name = Column(String(255), nullable=False)
    ID_Card = Column(String(255), primary_key=True)  # 设置为主键
    age = Column(Integer, nullable=False)
    city = Column(String(255), nullable=False)
# 创建表(如果表不存在)
Base.metadata.create_all(engine)
# 如果你想要使用 ORM 来进行操作,可以创建一个 session 类
Session = sessionmaker(bind=engine)
session = Session()
# 这里不需要执行 SQL 语句或提交更改,因为 create_all 方法会自动处理
# 关闭 session(如果需要的话,但在这种情况下我们并没有进行任何 ORM 操作)
# session.close()
print("Table myelsa_table created successfully!")

# 2、在数据库表中新增记录
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy.exc import SQLAlchemyError
# 定义基类
Base = declarative_base()
# 定义数据库模型类
class MyElsaTable(Base):
    __tablename__ = 'myelsa_table'
    ID_Card = Column(String, primary_key=True)
    name = Column(String)
    age = Column(Integer)
    city = Column(String)
    def __repr__(self):
        return f"<MyElsaTable(ID_Card={self.ID_Card}, name={self.name}, age={self.age}, city={self.city})>"
# 数据库连接配置
config = {
    'username': 'root',  # 替换为你的MySQL用户名
    'password': '123456',  # 替换为你的MySQL密码
    'host': '127.0.0.1',  # 如果数据库在远程服务器上,请替换为相应的主机名或IP地址
    'database': 'test_database',  # 数据库名
}
# 创建数据库引擎
engine = create_engine(
    f'mysql+pymysql://{config["username"]}:{config["password"]}@{config["host"]}/{config["database"]}')
# 确保所有表都已创建(可选)
Base.metadata.create_all(engine)
# 创建会话类
Session = sessionmaker(bind=engine)
# 定义要插入的数据
new_record = {
    'name': 'Myelsa',
    'ID_Card': '443689564710526448',
    'age': 18,
    'city': 'Guangzhou'
}
try:
    # 使用上下文管理器自动管理会话
    with Session() as session:
        # 创建新的模型实例
        new_entry = MyElsaTable(**new_record)
        # 将新实例添加到会话中
        session.add(new_entry)
        # 提交更改
        session.commit()
        print("Record inserted successfully!")
except SQLAlchemyError as e:
    print(f"Error: '{e}'")
    # 在使用上下文管理器时,无需显式回滚,因为上下文管理器会在退出时处理它
35-6-2、代码示例
# 35、pandas.read_sql_table函数
import pandas as pd
from sqlalchemy import create_engine
# 数据库连接信息
username = 'root'
password = '123456'
host = '127.0.0.1'
port = 3306
database = 'test_database'
# 使用SQLAlchemy创建数据库引擎
# 注意:这里使用mysql+pymysql://作为前缀,如果你使用的是mysqlclient,则使用mysql+mysqldb://
# 根据你的MySQL版本和驱动,你可能需要调整这个前缀
engine = create_engine(f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}')
# 调用read_sql_table函数
# 假设我们要读取的表名为'your_table_name'
table_name = 'myelsa_table'
df = pd.read_sql_table(table_name, con=engine, schema=None, index_col=None, coerce_float=True, parse_dates=None,
                       columns=None, chunksize=None)
# 显示DataFrame的前几行以验证数据
print(df.head())
35-6-3、结果输出 
# 35、pandas.read_sql_table函数
#      name             ID_Card  age       city
# 0  Myelsa  443689564710526448   18  Guangzhou
36、pandas.read_sql_query函数
36-1、语法
# 36、pandas.read_sql_query函数
pandas.read_sql_query(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, chunksize=None, dtype=None, dtype_backend=_NoDefault.no_default)
Read SQL query into a DataFrame.

Returns a DataFrame corresponding to the result set of the query string. Optionally provide an index_col parameter to use one of the columns as the index, otherwise default integer index will be used.

Parameters:
sqlstr SQL query or SQLAlchemy Selectable (select or text object)
SQL query to be executed.

conSQLAlchemy connectable, str, or sqlite3 connection
Using SQLAlchemy makes it possible to use any DB supported by that library. If a DBAPI2 object, only sqlite3 is supported.

index_colstr or list of str, optional, default: None
Column(s) to set as index(MultiIndex).

coerce_floatbool, default True
Attempts to convert values of non-string, non-numeric objects (like decimal.Decimal) to floating point. Useful for SQL result sets.

paramslist, tuple or mapping, optional, default: None
List of parameters to pass to execute method. The syntax used to pass parameters is database driver dependent. Check your database driver documentation for which of the five syntax styles, described in PEP 249’s paramstyle, is supported. Eg. for psycopg2, uses %(name)s so use params={‘name’ : ‘value’}.

parse_dateslist or dict, default: None
List of column names to parse as dates.

Dict of {column_name: format string} where format string is strftime compatible in case of parsing string times, or is one of (D, s, ns, ms, us) in case of parsing integer timestamps.

Dict of {column_name: arg dict}, where the arg dict corresponds to the keyword arguments of pandas.to_datetime() Especially useful with databases without native Datetime support, such as SQLite.

chunksizeint, default None
If specified, return an iterator where chunksize is the number of rows to include in each chunk.

dtypeType name or dict of columns
Data type for data or columns. E.g. np.float64 or {‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}.

New in version 1.3.0.

dtype_backend{‘numpy_nullable’, ‘pyarrow’}, default ‘numpy_nullable’
Back-end data type applied to the resultant DataFrame (still experimental). Behaviour is as follows:

"numpy_nullable": returns nullable-dtype-backed DataFrame (default).

"pyarrow": returns pyarrow-backed nullable ArrowDtype DataFrame.

New in version 2.0.

Returns:
DataFrame or Iterator[DataFrame].
36-2、参数

36-2-1、sql(必须)要执行的SQL查询语句,这个参数可以是一个字符串,包含要执行的SQL代码,或者是一个SQLAlchemy的Selectable对象(如一个表或查询)。

36-2-2、con(必须)用于执行SQL查询的数据库连接,这通常是一个SQLAlchemy的engine对象。

36-2-3、index_col(可选,默认值为None)将一列或多列作为返回的DataFrame的索引,默认情况下(None),不设置索引。如果指定了单个列名,则将该列用作索引;如果指定了列名的列表,则将这些列用作多级索引。

36-2-4、coerce_float(可选,默认值为True)尝试将非字符串、非数字对象转换为浮点数,这有助于确保数字类型的一致性,但可能会引入精度损失。

36-2-5、params(可选,默认值为None)一个列表、元组或字典,用于SQL查询中的参数替换,这有助于防止SQL注入攻击,并允许你安全地传递查询参数,如果提供了params,它们将在查询执行之前被替换到SQL字符串中的占位符中。

36-2-6、parse_dates(可选,默认值为None)指定要解析为日期时间类型的列,可以是一个列名的列表,也可以是一个字典,其中键是列名,值是要用于解析日期的格式字符串,如果设置为None(默认值),则不解析任何列。

36-2-7、chunksize(可选,默认值为None)如果指定了,则返回一个迭代器,该迭代器每次产生指定大小的DataFrame块,这对于处理大型数据集非常有用,因为它允许你在不将所有数据一次性加载到内存中的情况下逐块处理数据,如果为None(默认值),则一次性返回整个DataFrame。

36-2-8、dtype(可选,默认值为None)一个字典,用于指定列的数据类型,这允许你覆盖SQLAlchemy或数据库推断的数据类型,键是列名,值是你希望该列具有的数据类型(如np.float64、str 等)。

36-2-9、dtype_backend(可选)内部调用,通常不需要用户直接设置。

36-3、功能

        用于从数据库中执行SQL查询并将查询结果直接加载到pandas的DataFrame中。

36-4、返回值

        返回值是一个pandas DataFrame对象,该对象包含了SQL查询的结果,DataFrame是一个二维、大小可变的、潜在的异构表格数据结构,具有标记的轴(行和列),非常类似于Excel中的表格或SQL表,返回的DataFrame可以直接用于进一步的数据分析和处理。

36-5、说明

        无

36-6、用法
36-6-1、数据准备
# 确保已经安装了sqlalchemy库
# 1、创建数据库表
from sqlalchemy import create_engine, Column, Integer, String, MetaData
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 数据库连接配置(使用 SQLAlchemy 的 URI 格式)
DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1/test_database?charset=utf8mb4'
# 创建一个引擎实例
engine = create_engine(DATABASE_URI, echo=True)  # echo=True 用于显示生成的 SQL 语句,调试时可以打开
# 创建基类
Base = declarative_base()
# 定义模型类
class MyElsaTable(Base):
    __tablename__ = 'myelsa_table'
    name = Column(String(255), nullable=False)
    ID_Card = Column(String(255), primary_key=True)  # 设置为主键
    age = Column(Integer, nullable=False)
    city = Column(String(255), nullable=False)
# 创建表(如果表不存在)
Base.metadata.create_all(engine)
# 如果你想要使用 ORM 来进行操作,可以创建一个 session 类
Session = sessionmaker(bind=engine)
session = Session()
# 这里不需要执行 SQL 语句或提交更改,因为 create_all 方法会自动处理
# 关闭 session(如果需要的话,但在这种情况下我们并没有进行任何 ORM 操作)
# session.close()
print("Table myelsa_table created successfully!")

# 2、在数据库表中新增记录
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy.exc import SQLAlchemyError
# 定义基类
Base = declarative_base()
# 定义数据库模型类
class MyElsaTable(Base):
    __tablename__ = 'myelsa_table'
    ID_Card = Column(String, primary_key=True)
    name = Column(String)
    age = Column(Integer)
    city = Column(String)
    def __repr__(self):
        return f"<MyElsaTable(ID_Card={self.ID_Card}, name={self.name}, age={self.age}, city={self.city})>"
# 数据库连接配置
config = {
    'username': 'root',  # 替换为你的MySQL用户名
    'password': '123456',  # 替换为你的MySQL密码
    'host': '127.0.0.1',  # 如果数据库在远程服务器上,请替换为相应的主机名或IP地址
    'database': 'test_database',  # 数据库名
}
# 创建数据库引擎
engine = create_engine(
    f'mysql+pymysql://{config["username"]}:{config["password"]}@{config["host"]}/{config["database"]}')
# 确保所有表都已创建(可选)
Base.metadata.create_all(engine)
# 创建会话类
Session = sessionmaker(bind=engine)
# 定义要插入的数据
new_record = {
    'name': 'Lucy',
    'ID_Card': '443689564710526449',
    'age': 28,
    'city': 'Shenzhen'
}
try:
    # 使用上下文管理器自动管理会话
    with Session() as session:
        # 创建新的模型实例
        new_entry = MyElsaTable(**new_record)
        # 将新实例添加到会话中
        session.add(new_entry)
        # 提交更改
        session.commit()
        print("Record inserted successfully!")
except SQLAlchemyError as e:
    print(f"Error: '{e}'")
    # 在使用上下文管理器时,无需显式回滚,因为上下文管理器会在退出时处理它
36-6-2、代码示例
# 36、pandas.read_sql_query函数
import pandas as pd
from sqlalchemy import create_engine
# 数据库连接信息
username = 'root'
password = '123456'
host = '127.0.0.1'
port = 3306
database = 'test_database'
# 使用 SQLAlchemy 创建数据库引擎
# 注意:这里使用 mysql+pymysql:// 作为前缀,如果你使用的是 mysqlclient,则使用 mysql+mysqldb://
engine = create_engine(f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}')
# SQL 查询语句
sql_query = """  
SELECT name, ID_Card, age, city  
FROM myelsa_table  
WHERE age > 18  
ORDER BY city DESC  
LIMIT 100;  
"""
# 使用read_sql_query执行查询并加载数据到DataFrame
df = pd.read_sql_query(sql_query, con=engine, index_col='ID_Card', coerce_float=True, parse_dates=['city'])
# 显示 DataFrame 的前几行以验证数据
print(df.head())
36-6-3、结果输出 
# 36、pandas.read_sql_query函数
#                     name  age city
# ID_Card                           
# 443689564710526449  Lucy   28  NaT

二、推荐阅读

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

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

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

相关文章

防御笔记第四天(持续更新)

1.状态检测技术 检测数据包是否符合协议的逻辑顺序&#xff1b;检查是否是逻辑上的首包&#xff0c;只有首包才会创建会话表。 状态检测机制可以选择关闭或则开启 [USG6000V1]firewall session link-state tcp ? check Indicate link state check [USG6000V1]firewall ses…

Rejetto HFS 服务器存在严重漏洞受到攻击

AhnLab 报告称 &#xff0c;黑客正在针对旧版本的 Rejetto HTTP 文件服务器 (HFS) 注入恶意软件和加密货币挖矿程序。 然而&#xff0c;由于存在错误&#xff0c; Rejetto 警告用户不要使用 2.3 至 2.4 版本。 2.3m 版本在个人、小型团队、教育机构和测试网络文件共享的开发…

MySQL高级----详细介绍MySQL中的锁

概述 锁是计算机协调多个进程或线程并发访问某一资源的机制&#xff0c;为了解决数据访问的一致性和有效性问题。在数据库中&#xff0c;除传统的计算资源(CPU、RAN、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、…

将Hyper-V虚拟机与主机共享网络

Hyper-V 网络设置 目标 将Hyper-V虚拟机网络配置为与主机使用同一网络&#xff0c;并确保主机网络连接不受影响。 前提条件 主机上已安装Hyper-V已创建Hyper-V虚拟机 步骤 1. 配置主机网络共享 打开 控制面板 -> 网络和 Internet -> 网络连接。右键点击 WIAN,选择…

顶刊中的“水”刊!录取率>90%,十投九中,含金量高,近期1个月就录用!

本周投稿推荐 SCI • 能源科学类&#xff0c;1.5-2.0&#xff08;25天来稿即录&#xff09; • CCF推荐&#xff0c;4.5-5.0&#xff08;2天见刊&#xff09; • 生物医学制药类&#xff08;2天逢投必中&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09…

游戏AI的创造思路-技术基础-情感计算(1)

游戏中的AI也是可以和你打情感牌的哦&#xff0c;不要以为NPC是没有感情的&#xff0c;不过&#xff0c;不要和NPC打过多的情感牌&#xff0c;你会深陷其中无法自拔的~~~~~~ 目录 1. 情感计算算法定义 2. 发展历史 3. 公式和函数 3.1. 特征提取阶段 TF-IDF&#xff08;词频…

vue 自定义(hook)--(模块化)

文章目录 定义示例代码 定义 什么是hook&#xff1f;—— 本质是一个函数&#xff0c;把setup函数中使用的Composition API进行了封装&#xff0c;类似于vue2.x中的mixin。 自定义hook的优势&#xff1a;复用代码, 让setup中的逻辑更清楚易懂。 示例代码 useSum.ts中内容如下…

Linux基础指令解析+项目部署环境

文章目录 前言基础指令部署项目环境总结 前言 Linux的魅力在于其强大的可定制性和灵活性&#xff0c;这使得它成为了众多开发者和运维人员的首选工具。然而&#xff0c;Linux的指令系统庞大而复杂&#xff0c;初学者往往容易迷失其中。因此&#xff0c;本文将带领大家走进Linu…

第三期书生大模型实战营 第1关 Linux 基础知识

第三期书生大模型实战营 第1关 Linux 基础知识 第三期书生大模型实战营 第1关 Linux 基础知识InternStudio开发机创建SSH密钥配置通过本地客户端连接远程服务器通过本地VSCode连接远程服务器运行一个Python程序总结 第三期书生大模型实战营 第1关 Linux 基础知识 Hello大家好&a…

设计分享—国外后台界面设计赏析

国外后台界面设计将用户体验放在首位&#xff0c;通过直观易懂的布局和高效的交互设计&#xff0c;提升用户操作效率和满意度。 设计不仅追求美观大方&#xff0c;还注重功能的实用性和数据的有效展示&#xff0c;通过图表和图形化手段使数据更加直观易懂。 采用响应式布局&a…

C++的介绍与认识

目录 前言 1.什么是C 2.C的发展历史 3.C参考文档 4.C重要性 4.1C特点 4.2编程语言排行榜 4.3 C的应用领域 5.C学习指南 1. 基础知识 2. 面向对象编程&#xff08;OOP&#xff09; 3. 泛型编程 4. 标准库&#xff08;STL&#xff09; 结束语 前言 学习了C语言的知识…

LINUX命令行curl指令与python内置urllib模块

urllib是python御用的易用的轻便模块&#xff0c;curl是Linux功能强大的命令行工具&#xff0c;都是参与Web的利器。 (笔记模板由python脚本于2024年07月10日 18:41:12创建&#xff0c;本篇笔记适合喜欢Python和Linux的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&…

【AI大模型】检索增强生成(RAG)模型在企业中的应用

彩蛋 ChatGPT4相比于ChatGPT3.5,有着诸多不可比拟的优势&#xff0c;比如图片生成、图片内容解析、GPTS开发、更智能的语言理解能力等&#xff0c;但是在国内使用GPT4存在网络及充值障碍等问题&#xff0c;如果您对ChatGPT4.0感兴趣&#xff0c;可以私信博主为您解决账号和环境…

一键换衣,这个AI可以让你实现穿衣自由

基于图像的虚拟穿衣是一种流行且前景广阔的图像合成技术&#xff0c;能够显著改善消费者的购物体验&#xff0c;并降低服装商家的广告成本。顾名思义&#xff0c;虚拟穿衣任务旨在生成目标人穿着给定服装的图像。 OOTDiffusion简述 图1 虚拟换衣 基于图像的虚拟穿衣目前面临两…

什么是CAP理论及应用场景,为什么只能进行3选2

在理论计算机科学中&#xff0c;CAP定理&#xff08;CAP theorem&#xff09;&#xff0c;又被称作布鲁尔定理&#xff08;Brewers theorem&#xff09;&#xff0c;它指出对于一个分布式计算系统来说&#xff0c;不可能同时满足以下三点&#xff1a; 1、 一致性&#xff08;C…

【教程】Hexo 部署到 Github Page 后,自定义域名失效的问题

目录 前言&问题描述解决方案细节 前言&问题描述 近期给 Github Page 上托管的静态网站映射了自定义域名&#xff08;aiproducthome.top&#xff09;&#xff0c;之后发现每次更新并部署 hexo 到 Github Page &#xff08;hexo d&#xff09;后就会出现自定义域名失效的…

【pyqt-实训训练LOG】串口助手

串口助手 前言一、ui设计二、ui的控件命名三、ui转py使用类的方法【扩展】使用ui文件导入&#xff01;P7的小错误解决办法 总结 前言 我的惯例就是万物之始&#xff0c;拜见吾师&#x1f970;⇨pyqt串口合集 最开始的时候我想的是&#xff0c;学了那么久的pyqt&#xff0c;我…

【idea 修改VM配置,无法启动;必杀技】

idea 修改VM配置&#xff0c;无法启动&#xff1b;必杀技 报错信息 error launching idea failed to created JVM 解决方案 不要管你安装的环境在哪&#xff0c;使用了什么破解插件。统统不管用。直接找到C:\Users\YOURWORLD\AppData\Roaming\JetBrains下的idea中的idea64…

换新启航环游浪漫新篇章

✨&#x1f389;【焕新启航&#xff0c;环游浪漫新篇章 —— 《焕新环游传》盛大开播】&#x1f389;✨在时光的温柔转角&#xff0c;一场前所未有的梦幻之旅悄然拉开序幕&#xff01;&#x1f31f;《焕新环游传》—— 这不仅仅是一部剧集的开播&#xff0c;更是对过往角色遗憾…

从0开始的STM32HAL库学习1

基础外设初始化配置步骤 本学习以stm32f103c8t6为主控芯片学习。配合DMK-Keil使用&#xff0c;因为cubeide我还没找到很好的教程&#xff0c;而且用了几次发现不会用&#xff0c;所以还是先学习hal库&#xff0c;等hal库学习完之后再用学习使用cubeide&#xff0c;两者使用应该…