自动化操作读写Excel —— xlrd 和 xlwt 模块参数说明与代码实战【第95篇—自动化操作读写Excel 】

自动化操作读写Excel —— xlrd 和 xlwt 模块参数说明与代码实战

在日常工作中,Excel表格是不可或缺的数据处理工具。为了提高工作效率,Python中的xlrd和xlwt模块为我们提供了强大的功能,使得自动化操作Excel变得更加简便。本文将介绍xlrd和xlwt模块的参数说明,并通过代码实战演示如何进行Excel的读写操作。

在这里插入图片描述

1. xlrd 模块

1.1 模块介绍

xlrd是一个用于读取Excel文件的库,支持.xls和.xlsx格式的文件。在使用之前,需要确保已安装该模块,可以通过以下命令进行安装:

pip install xlrd
1.2 参数说明
  • open_workbook(file_path): 打开Excel文件,返回一个workbook对象。
  • sheet_by_index(index): 根据索引获取工作表,返回一个sheet对象。
  • sheet_by_name(sheet_name): 根据工作表名获取工作表,返回一个sheet对象。
  • nrowsncols: 获取工作表的行数和列数。
  • cell(row, col): 获取指定单元格的值。
1.3 代码实战
import xlrd# 打开Excel文件
workbook = xlrd.open_workbook('example.xlsx')# 获取第一个工作表
sheet = workbook.sheet_by_index(0)# 获取行数和列数
num_rows = sheet.nrows
num_cols = sheet.ncols# 遍历打印每个单元格的值
for row in range(num_rows):for col in range(num_cols):cell_value = sheet.cell(row, col).valueprint(f'({row+1}, {col+1}): {cell_value}')

2. xlwt 模块

2.1 模块介绍

xlwt是一个用于写入Excel文件的库,支持创建.xls格式的文件。同样,在使用之前,需要确保已安装该模块:

pip install xlwt
2.2 参数说明
  • Workbook(): 创建一个Excel工作簿。
  • add_sheet(sheet_name): 在工作簿中添加一个工作表。
  • write(row, col, value): 在指定单元格写入值。
2.3 代码实战
import xlwt# 创建一个Excel工作簿
workbook = xlwt.Workbook()# 在工作簿中添加一个工作表
sheet = workbook.add_sheet('Sheet1')# 写入数据
data = [['Name', 'Age', 'City'],['John', 25, 'New York'],['Alice', 30, 'London'],['Bob', 22, 'Tokyo']
]for row_index, row in enumerate(data):for col_index, value in enumerate(row):sheet.write(row_index, col_index, value)# 保存文件
workbook.save('output.xls')

通过上述代码,我们成功创建了一个包含数据的Excel文件。

3. xlrd 和 xlwt 的高级应用

3.1 xlrd:处理日期和格式化数据

xlrd 不仅可以读取普通文本数据,还可以处理日期和格式化数据。以下是一个处理日期数据的示例:

import xlrd
from datetime import datetimeworkbook = xlrd.open_workbook('dates.xlsx')
sheet = workbook.sheet_by_index(0)# 读取日期数据并进行格式化输出
date_cell = sheet.cell_value(1, 0)
date_value = xlrd.xldate_as_datetime(date_cell, workbook.datemode)
formatted_date = date_value.strftime('%Y-%m-%d %H:%M:%S')
print(f'Formatted Date: {formatted_date}')
3.2 xlwt:设置单元格样式

xlwt 提供了设置单元格样式的功能,可以修改字体、颜色、对齐方式等。以下是一个设置单元格样式的示例:

import xlwtworkbook = xlwt.Workbook()
sheet = workbook.add_sheet('StyledSheet')# 创建样式
style = xlwt.XFStyle()
font = xlwt.Font()
font.bold = True
font.color_index = xlwt.Style.colour_map['red']
style.font = font# 在单元格应用样式
sheet.write(0, 0, 'Styled Text', style)# 保存文件
workbook.save('styled_output.xls')

通过上述代码,我们将单元格的文本设置为粗体并显示为红色。

4. 实战应用:合并处理数据

结合 xlrdxlwt,我们可以实现更复杂的数据处理操作,例如从一个 Excel 文件中读取数据,进行处理后写入另一个文件。以下是一个简单的示例:

import xlrd
import xlwt# 读取原始数据
input_workbook = xlrd.open_workbook('input_data.xlsx')
input_sheet = input_workbook.sheet_by_index(0)# 创建新的工作簿和工作表
output_workbook = xlwt.Workbook()
output_sheet = output_workbook.add_sheet('ProcessedData')# 处理数据并写入新的工作表
for row_index in range(input_sheet.nrows):for col_index in range(input_sheet.ncols):cell_value = input_sheet.cell_value(row_index, col_index)# 进行数据处理,这里简单示范,可以根据实际需求进行更复杂的操作processed_value = cell_value * 2# 写入新的工作表output_sheet.write(row_index, col_index, processed_value)# 保存结果
output_workbook.save('processed_output.xls')

通过以上实例,我们成功地从一个 Excel 文件读取数据,对数据进行处理,并将结果写入另一个 Excel 文件中。

总的来说,xlrdxlwt 模块提供了强大的功能,使得我们能够轻松进行 Excel 数据的读取和写入,同时通过高级应用可以处理更复杂的场景。这些工具不仅节省了大量手动操作的时间,还使得数据处理变得更加灵活和可控。希望本文的介绍和示例代码对您在实际工作中使用 xlrd 和 xlwt 模块有所帮助。

5. 异常处理与最佳实践

在使用 xlrdxlwt 进行 Excel 操作时,考虑到实际应用中可能遇到的各种情况,良好的异常处理是必不可少的。以下是一些常见的异常处理和最佳实践:

5.1 异常处理
  • 文件不存在异常处理: 在打开文件时,应该添加文件是否存在的检查,避免程序崩溃。

    import xlrdfile_path = 'example.xlsx'try:workbook = xlrd.open_workbook(file_path)
    except FileNotFoundError:print(f"Error: File '{file_path}' not found.")
    
  • 工作表或单元格不存在异常处理: 在访问工作表或单元格时,应该确保它们存在。

    import xlrdworkbook = xlrd.open_workbook('example.xlsx')
    sheet_index = 0try:sheet = workbook.sheet_by_index(sheet_index)
    except IndexError:print(f"Error: Sheet at index {sheet_index} not found.")
    
5.2 最佳实践
  • 上下文管理器(with语句): 使用 with 语句可以确保在操作完成或发生异常时正确关闭文件,避免资源泄漏。

    import xlrdfile_path = 'example.xlsx'try:with xlrd.open_workbook(file_path) as workbook:sheet = workbook.sheet_by_index(0)# 进行其他操作
    except FileNotFoundError:print(f"Error: File '{file_path}' not found.")
    
  • 兼容性考虑: 在处理日期等特殊数据时,要注意不同版本的 Excel 可能使用不同的日期表示方式,应进行兼容性处理。

    import xlrd
    from datetime import datetimedef read_excel_date(cell):try:date_value = xlrd.xldate_as_datetime(cell, 0)  # 0表示使用1900年日期基准return date_value.strftime('%Y-%m-%d')except xlrd.xldate.XLDateError:return "Invalid Date"workbook = xlrd.open_workbook('dates.xlsx')
    sheet = workbook.sheet_by_index(0)date_cell = sheet.cell_value(1, 0)
    formatted_date = read_excel_date(date_cell)
    print(f'Formatted Date: {formatted_date}')
    

通过合理的异常处理和最佳实践,可以提高代码的健壮性和可维护性,确保在实际应用中能够更好地应对各种情况。

7. 扩展应用:使用 pandas 进行更便捷的数据处理

虽然 xlrdxlwt 提供了基本的 Excel 操作功能,但在处理大量数据或进行更复杂的数据分析时,使用 pandas 库可能更为便捷和高效。pandas 提供了强大的数据结构和数据分析工具,可以轻松处理 Excel 表格数据。

7.1 安装 pandas

在开始之前,请确保已安装 pandas

pip install pandas
7.2 读取 Excel 数据
import pandas as pd# 读取 Excel 文件
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')# 打印前几行数据
print(df.head())
7.3 数据处理和写入
# 在现有数据框上进行处理
df['New_Column'] = df['Old_Column'] * 2# 写入到新的 Excel 文件
df.to_excel('output_with_pandas.xlsx', index=False)

pandas 提供了丰富的数据处理和分析功能,例如数据筛选、分组、聚合等,能够大大简化数据操作过程。

8. 结语

本文通过介绍 xlrdxlwt 模块,详细展示了如何在 Python 中实现 Excel 数据的读取和写入,并通过代码示例展示了高级功能、异常处理和最佳实践。同时,引入了 pandas 库作为进阶工具,提高了数据处理的便捷性和灵活性。

在实际应用中,可以根据具体需求选择合适的工具。如果只涉及到基本的 Excel 操作,xlrdxlwt 是不错的选择;而在需要进行更复杂的数据处理和分析时,pandas 则是一个更为强大的工具。

希望本文能够帮助读者更好地理解和应用 Python 中的 Excel 操作相关模块,提高数据处理的效率和质量。

9. 进一步学习和探索

9.1 学习更多 xlrdxlwt 功能
  • 官方文档: 深入研究 xlrdxlwt 的官方文档,了解更多参数和功能。

  • 社区支持: 在相关社区(如Stack Overflow)寻求帮助,了解其他开发者的经验和建议。

9.2 深入学习 pandas
  • 官方文档: pandas 提供了详尽的文档,逐步学习不同功能和用法。

  • 教程和示例: 在线教程和示例可以帮助深入理解 pandas 的应用场景。

9.3 多样化的数据处理场景
  • 实际项目: 尝试在实际项目中应用所学知识,处理真实世界的数据。

  • 数据分析竞赛: 参与数据科学和分析的竞赛平台,如 Kaggle,挑战更复杂的数据处理问题。

9.4 版本控制与团队协作
  • 学习版本控制: 使用工具如 Git 和 GitHub 进行版本控制,有效管理代码和协作。

  • 协作实践: 了解团队协作的最佳实践,与他人合作处理数据处理任务。

10. 持续实践与创新

在学习过程中,不断实践和尝试新的技术是提高技能的关键。通过解决实际问题,挑战自己,不断创新,你将更深入地理解数据处理和分析领域,并在工作中取得更大的成就。祝你在 Python 中的数据处理之旅中取得成功!

11. 其他相关技术建议

11.1 虚拟环境和依赖管理
  • 虚拟环境: 使用虚拟环境(virtual environment)隔离项目之间的依赖,避免不同项目间的冲突。

    # 创建虚拟环境
    python -m venv myenv# 激活虚拟环境
    source myenv/bin/activate  # 在 Linux/macOS 中
    myenv\Scripts\activate.bat  # 在 Windows 中# 安装依赖
    pip install xlrd xlwt pandas
    
  • 依赖管理: 使用 requirements.txt 文件记录项目的依赖,方便共享和管理。

    # 生成 requirements.txt 文件
    pip freeze > requirements.txt# 安装依赖
    pip install -r requirements.txt
    
11.2 数据可视化
  • 数据可视化工具: 学习使用数据可视化工具,如 matplotlibseaborn,将数据以图形方式呈现。

    import matplotlib.pyplot as plt
    import seaborn as sns# 示例:绘制柱状图
    sns.barplot(x='Category', y='Value', data=df)
    plt.show()
    
11.3 持续学习
  • 在线课程: 参加在线课程,如 Coursera、edX 等平台上的数据科学和 Python 编程课程。

  • 书籍阅读: 阅读经典的数据科学和 Python 编程书籍,不断扩充知识面。

11.4 实践项目
  • 个人项目: 尝试开展个人项目,从中学到更多实际经验。

  • 贡献开源: 考虑贡献到开源项目,了解开源社区的协作方式。

12. 持续改进

在技术领域,持续改进是至关重要的。保持对新技术和行业趋势的敏感性,参与社区和行业讨论,不断学习和改进自己的技能。随着技术的发展,你会发现越来越多的可能性和机会等待着你。

13. 持续研究新技术和趋势

13.1 了解机器学习和深度学习
  • 学习资源: 深入学习机器学习和深度学习,了解常用的框架如 TensorFlow 和 PyTorch。

    pip install tensorflow pytorch
    
  • 实践项目: 参与机器学习项目,应用模型解决实际问题。

13.2 掌握其他数据处理工具
  • NumPy 和 SciPy: 学习使用 NumPy 处理数组和矩阵,以及 SciPy 提供的科学计算工具。

    pip install numpy scipy
    
  • Scikit-learn: 掌握 Scikit-learn,一个用于机器学习和数据挖掘的工具。

    pip install scikit-learn
    
13.3 数据库和大数据处理
  • 数据库: 学习使用数据库工具如 SQLite、MySQL、MongoDB 等,处理大规模数据。

  • 大数据处理: 了解大数据处理工具,如 Apache Hadoop 和 Apache Spark。

13.4 网络爬虫和数据采集
  • Beautiful Soup 和 Scrapy: 学习使用 Beautiful Soup 和 Scrapy 进行网络爬虫和数据采集。

    pip install beautifulsoup4 scrapy
    
13.5 持续参与社区
  • 开源社区: 参与开源社区,学习他人的经验,分享自己的见解。

  • 社交媒体: 关注技术领域的社交媒体和博客,了解行业趋势。

14. 发展职业道路

14.1 构建个人品牌
  • 个人博客: 创建个人博客分享技术文章和项目经验,建立个人品牌。

  • GitHub: 在 GitHub 上分享自己的项目,参与开源社区。

14.2 继续学术深造
  • 学术研究: 考虑深入学术领域,攻读硕士或博士学位,参与研究项目。
14.3 实践领导力和团队合作
  • 领导力培养: 参与领导小组或项目,培养领导力和团队协作能力。

  • 团队协作: 学习与团队协作、项目管理相关的技能。

16. 持续关注行业动态和技术会议

16.1 参与技术社区
  • 在线社区: 加入技术社区如 Stack Overflow、Reddit 等,分享问题和解答。

  • 本地用户组: 参与本地技术用户组或 Meetup 活动,与同行交流经验。

16.2 参加技术会议和研讨会
  • 全球大会: 考虑参加全球性的技术会议,如 PyCon、Data Science conferences 等。

  • 本地研讨会: 参与本地举办的技术研讨会,了解本地技术社区的发展。

16.3 订阅技术新闻和博客
  • 行业新闻: 订阅技术新闻网站和博客,随时了解行业动态和新技术。

  • 订阅专业期刊: 考虑订阅相关领域的专业期刊,深入了解前沿技术。

17. 制定职业发展计划

17.1 设定短期和长期目标
  • 明确方向: 确定自己感兴趣的领域,并为之设定清晰的短期和长期目标。

  • 技能提升: 列出需要提升的技能,并制定学习计划,逐步实现目标。

17.2 寻求导师和反馈
  • 导师关系: 寻找导师或 mentor,获取指导和反馈,加速职业发展。

  • 360度反馈: 定期寻求同事和领导的反馈,不断改进自己的工作表现。

17.3 持续学历和证书
  • 学历提升: 考虑继续深造,攻读硕士或博士学位,拓展学术背景。

  • 专业认证: 考虑取得相关领域的专业认证,提升自己在职场的竞争力。

18. 调适工作与生活平衡

18.1 健康优先
  • 定期锻炼: 定期进行身体锻炼,保持身心健康。

  • 良好睡眠: 确保每晚足够的睡眠,保持精力充沛。

18.2 管理工作压力
  • 任务管理: 使用任务管理工具,合理安排工作和学习任务。

  • 学会拒绝: 学会适时拒绝一些额外的工作,保持工作的可控性。

19. 持续提升沟通和团队协作技能

19.1 学会有效沟通
  • 清晰表达: 学会用简洁明了的语言清晰表达自己的想法。

  • 倾听他人: 重视倾听,尊重他人意见,提高团队协作效率。

19.2 团队合作与领导力
  • 积极参与: 积极参与团队合作,分享经验,解决问题。

  • 领导力培养: 发展领导力,能够在团队中引导和激励他人。

20. 持续反思与调整计划

20.1 定期回顾计划
  • 季度回顾: 每季度回顾职业发展计划,调整目标和计划。

  • 学习经验: 反思过去的学习和工作经验,总结经验教训。

20.2 调整计划
  • 灵活调整: 计划是动态的,随时根据实际情况进行灵活调整。

  • 持续学习: 保持对新技术和行业趋势的学习,不断适应变化。

祝愿你在职业生涯中获得持续的成功和满足感!希望以上建议能够帮助你规划和实现自己的职业发展目标。

总结:走向成功的职业发展之路

在这篇文章中,我们探讨了走向成功的职业发展之路所需的关键步骤和建议。从学习 Python 中的数据处理开始,我们深入了解了 xlrdxlwt 模块,展示了如何自动化操作 Excel 表格。通过实际的代码示例,我们学习了如何读取和写入 Excel 数据,处理日期和格式化,设置单元格样式,以及异常处理和最佳实践。

随后,我们引入了 pandas 库,这是一个强大的数据处理工具,能够更便捷地进行数据操作和分析。我们还提到了其他相关技术建议,包括虚拟环境和依赖管理、数据可视化、网络爬虫、持续学习等。

进一步,我们分享了关于持续学习和发展的建议,包括了解新技术和趋势、参与技术社区、参加技术会议、制定职业发展计划等。此外,我们强调了工作与生活的平衡,健康优先,以及沟通和团队协作的重要性。

最后,我们提出了关于调整计划和持续反思的建议,鼓励读者定期回顾职业发展计划,灵活调整,不断学习适应变化。整个文章的目标是为读者提供一系列有实际操作性的建议,帮助他们在职业生涯中取得成功,并找到工作与生活的平衡。

在职业发展的路上,持续学习、不断提升技能、灵活适应变化是至关重要的。愿每一位读者都能在自己的职业道路上取得显著的成就和不断的进步。前路漫漫,愿你的职业生涯蓬勃发展!

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

npm 最新淘宝镜像配置 + nrm工具配置及使用

一、前言 npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com (HTTPS 证书到期不能用了) 二、直接命令配置 1、执行以下命令即可切换淘宝源 npm config set registry https://registry.npmmirror.com/2、执行以下命令即可…

重拾前端基础知识:JavaScript

重拾前端基础知识:JavaScript 前言使用JavaScript输出语法运算符条件语句循环数据类型字符串数字数组对象日期函数 数学正则表达式异常处理类集合模块JSON闭包异步调试DOM(文档对象模型)事件事件监听器表单 BOM(浏览器对象模型&am…

基于vue的图书管理系统的设计与实现

高校师生在教学中承受的压力越大就对知识拥有了更多的需求,而满足这一需求的最佳场所无疑就是图书馆。当前虽然信息技术在各个方面都发挥出重要作用,但是在相当多的高校图书馆中依然由工作人员手动完成图书借阅、归还及逾期提醒等所有工作,在…

03OpenCV图像的掩膜操作

文章目录 掩膜操作提高图像的对比度获取图像像素制作图像掩膜算子防止像素溢出算子全部代码 掩膜操作提高图像的对比度 红色是中心像素,从上到下,从左到右对每个像素做同样的处理操作,得到最终结果就是对比度提高之后的输出图像Mat对象 注&am…

【全志D1-H 哪吒开发板】Debian系统安装调教和点灯指南

全志D1-H开发板【哪吒】使用Deabian系统入门 特别说明: 因为涉及到操作较多,博文可能会导致格式丢失 其中内容,会根据后续使用做优化调整 目录: 参考资料固件烧录启动调教点灯问题 〇、参考资料 官方资料 开发板-D1开发板【…

NLP-词向量、Word2vec

Word2vec Skip-gram算法的核心部分 我们做什么来计算一个词在中心词的上下文中出现的概率? 似然函数 词已知,它的上下文单词的概率 相乘。 然后所有中心词的这个相乘数 再全部相乘,希望得到最大。 目标函数(代价函数&#xff0…

本届挑战赛季军方案:基于图网络及LLM AGENT的微服务系统异常检测和根因定位方法

aiboco团队荣获本届挑战赛季军。该团队来自亿阳信通。 方案介绍 本届挑战赛采用开放式赛题,基于建行云龙舟运维平台的稳定性工具和多维监控系统,模拟大型的生活服务APP的生产环境,提供端到端的全链路的日志、指标和调用链数据。参赛队伍在组…

#LLM入门|Prompt#2.2_ AI 应用开发的范式_Language_Models,the_Chat_Format_and_Tokens

在本章中,我们将和您分享大型语言模型(LLM)的工作原理、训练方式以及分词器(tokenizer)等细节对 LLM 输出的影响。 我们还将介绍 LLM 的提问范式(chat format),这是一种指定系统消息…

YOLOv8改进 | 独家创新篇 | 结合SOTA思想利用双主干网络改进YOLOv8(全网独家创新,最重磅的更新)

一、本文介绍 本文给大家带来的改进机制是结合目前SOTAYOLOv9的思想利用双主干网络来改进YOLOv8(本专栏目前发布以来改进最大的内容,同时本文内容为我个人一手整理全网独家首发 | 就连V9官方不支持的模型宽度和深度修改我都均已提供,本文内容支持YOLOv8全系列模型从n到x均可…

【STM32】STM32学习笔记-WDG看门狗(46)

00. 目录 文章目录 00. 目录01. WDG简介02. IWDG概述03. IWDG框图04. IWDG键寄存器05. WWDG简介06. WWDG框图07. WWDG工作特性08. IWDG和WWDG对比09. 预留10. 附录 01. WDG简介 WDG(Watchdog)看门狗 看门狗可以监控程序的运行状态,当程序因为…

eltable 合计行添加tooltip

eltable 合计行添加tooltip 问题描述: eltable 合计行单元格内容过长会换行,需求要求合计行数据超长显示 … ,鼠标 hover 时显示提示信息。 解决方案:eltable合计行没有对外的修改接口,想法是 自己实现一个tooltip&a…

【GB28181】wvp-GB28181-pro快速修改登录页面名称(前端)

引言 作为一个非前端开发人员,自己摸索起来比较费劲,也浪费了很多时间 本文快速帮助开发者修改为自己名称的一个国标平台 文章目录 一、 预期效果展示二、 源码修改-前端三、 验证修改效果一、 预期效果展示 二、 源码修改-前端 需要修改的文件位置: 项目工程下web_src目录…

高并发数据采集:Ebay商家信息多进程爬虫的进阶实践

背景 Ebay作为全球最大的电子商务平台之一,其商家信息包含丰富的市场洞察。然而,要高效获取这些信息,就需要利用先进的技术手段。本文将深入探讨如何通过并发加速技术,实现Ebay商家信息多进程爬虫的最佳实践方法,并附…

Find My运动相机|苹果Find My技术与相机结合,智能防丢,全球定位

运动相机设计用于在各种运动和极限环境中使用,如徒步、登山、攀岩、骑行、滑翔、滑雪、游泳和潜水等,它们通常具有防抖防震、深度防水和高清画质的特点,能够适应颠簸剧烈的环境,甚至可以承受一定程度的摔落,一些运动相…

skywalking展示http请求和响应

1.效果图 可以在请求中看到自定义请求信息input和返回值output&#xff0c;方便快速定位问题 2.添加依赖 <dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>9.1.0</version&…

MySQL的Redo Log、Undo Log、Binlog与Replay Log日志

前言 MySQL数据库作为业界最流行的开源关系型数据库之一&#xff0c;其底层实现涉及多种重要的日志机制&#xff0c;其中包括Redo Log、Undo Log、Binlog和Replay Log。这些日志组件共同确保MySQL数据库系统在面对事务处理、数据恢复和主从复制等方面表现出色。本文主要介绍一下…

pytorch 图像的卷积操作

目录 1.卷积核基本参数说明 2.卷积相关操作说明 3.卷积操作示例 1.卷积核基本参数说明 pytorch进行图像卷积操作之前&#xff0c;需要把图像素格式进行分离&#xff0c;比如一个图像为rgb格式&#xff0c;把R&#xff0c;G,B取出来作为一个ndarray&#xff0c;前文讲过&#…

ARM系列 -- 虚拟化(三)

为了实现虚拟化&#xff0c;虚拟机需要控制系统资源。但是实际的系统资源是在hypervisor直接控制之下&#xff0c;为了实现隔离和安全等方面的考虑&#xff0c;不可能让虚拟机直接控制这些系统资源。 比如&#xff0c;虚拟机想根据具体情况去做电源管理。一个解决办法就是利用…

.net 在ubuntu下动态写入 中文字乱码 解决:ubuntu下添加中文字库

.net 在ubuntu下动态写入图片水印 中文字乱码 解决&#xff1a;ubuntu下添加中文字库 1.安装字体命令 sudo apt install -y fontconfig2.查看已安装的字体 &#xff08;1&#xff09;查看linux已安装字体 fc-list&#xff08;2&#xff09;查看linux已安装中文字体 fc-li…

字节面试问题

实现三列布局的方法 第一种&#xff1a;可以使用浮动margin 第二种&#xff1a;浮动BFC <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…