快捷做网站,阿里云预安装wordpress,地方网站如何做,北京顺义网站建设正文共#xff1a;1500 字 10 图#xff0c;预估阅读时间#xff1a;1 分钟 在前面的文章中#xff08;如何使用Python提取Excel中固定单元格的内容#xff09;#xff0c;我们介绍了如何安装Python环境和PyCharm工具#xff0c;还利用搭好的环境简单测试了一下ChatGPT提… 正文共1500 字 10 图预估阅读时间1 分钟 在前面的文章中如何使用Python提取Excel中固定单元格的内容我们介绍了如何安装Python环境和PyCharm工具还利用搭好的环境简单测试了一下ChatGPT提供的脚本程序。 简单回顾一下上次的操作过程 首先我们创建了一个记事本新文件然后将ChatGPT提供的示例代码复制粘贴到了文件中接着保存文件并将文件名后缀改为了.py并直接双击运行此文件接下来在打开的PyCharm工具中我们尝试执行了脚本主要报错是缺少对应的Python库和依赖关系。 对于缺少的组件我们在PyCharm的顶部菜单中选择“File”下的“Settings”打开设置对话框然后选择“Project”下的“Project Interpreter”单击项目解释器列表上方的 “”按钮来添加新的Python包在弹出的对话框中搜索“pandas”和“openpyxl”单击“Install Package”按钮等待安装完成。 Pandas是一个用于数据分析的强大Python库它提供了各种数据结构和数据操作工具可以轻松地进行数据处理、清洗和分析等任务。它有一个依赖包那就是openpyxl主要用于读写Excel文件有了openpyxl我们就可以使用Pandas库来读取和比较Excel文件了。 最后我们终于执行成功读取到了Excel中的单元格数据。 当然在上个脚本中我有点不满意的地方那就是设置单元格的行号和列号有点不符合常规逻辑。 # 设置需要提取的单元格行号和列号
row_index 1
col_index 1 当我们需要读取B2的数据时需要将行号设置为1、列号设置为1。同时输出的数据格式也稍微有点简单今天我们来对脚本做一个简单升级。 我们可以使用cell_positions来选择多个不连续的单元格像下面这样 # 定义要提取的单元格位置
cell_positions {name: B2,phone: B3,address: B4,serv: B5
} 注意这里的单元格可以使用我们所熟悉的单元格格式B2不同单元格之间的逗号不能省略。 然后就是路径问题Windows的中文环境中经常会包含一些特殊字符比如汉字、数字或者空格等经常会出现识别错误。 这里我们用了一个1月份来命名文件夹但是这里做了一个转义转换成了特殊字符导致操作系统无法正确解析文件路径进而导致读取文件失败。 虽然没有报错但是我们可以看到它没有读到任何文件。 对于这类不合法的文件路径可能是包含了Windows不支持的特殊字符或者非法字符还有可能是路径名过长等原因。该问题一般有以下几种方法解决方案 1、修正文件路径检查您的文件路径是否包含了非法字符或者过长的路径名如果有将其修改为合法的路径 2、使用原始字符串表示法将文件路径使用原始字符串表示法在字符串前面加上r或R来避免转义字符和特殊字符的影响。 3、使用os.path.join函数构造文件路径该函数会自动处理不同操作系统的路径分隔符并确保生成的路径是合法的。 这里我是用了最常用的第2种解决方案在在字符串前面加上r之后检查就没有错误了。 对于该目录下的子目录我们可以使用os.walk()函数来遍历指定文件夹下的所有文件和子文件夹并逐个读取Excel文件。这里可以直接指定也可以使用前面通过folder_path定义的文件夹路径变量。 最后如果我们要将提取的内容保存到一个文本文件中也可以使用Python的文件操作来打开指定文件并写入。 在上面的代码中我们首先使用with open()语句打开要写入的文件并使用w参数将打开文件的模式指定为写入模式。然后在遍历文件夹和读取Excel文件时我们将提取的内容写入到该文件中。具体来说我们在遍历每个Excel文件时将文件路径和提取的值写入到文件中并在每个Excel文件处理完后在文件中添加一个空行。 最后整合一下我们就得到了完整的脚本。 import os
import openpyxl
# 定义要提取的单元格位置
cell_positions {name: B2,phone: B3,address: B4,serv: B5
}
# 定义要处理的文件夹路径
folder_path C:\python-test
# 打开文件准备写入提取的内容
with open(rC:\python-test\result.txt, w, encodingutf-8) as f:# 遍历指定文件夹下的所有 Excel 文件for root, dirs, files in os.walk(folder_path):for filename in files:# 仅处理 Excel 文件if filename.endswith(.xlsx):file_path os.path.join(root, filename)print(f正在处理文件: {file_path})# 打开 Excel 文件workbook openpyxl.load_workbook(file_path)# 选择工作表sheet workbook.active# 提取指定单元格的值values {}for position in cell_positions:cell sheet[cell_positions[position]]values[position] cell.value# 将提取的值写入文件f.write(f文件路径: {file_path}\n)for key, value in values.items():f.write(f{key}: {value}\n)f.write(\n) 运行看一下效果。 因为print()函数中我们没有再显示结果数据所以仅显示了文件信息。然后我们打开记事本文件看一下。 OK达到测试目的。 长按二维码关注我们吧 如何使用Python提取Excel中固定单元格的内容 配置openVPN使用用户名密码认证 解决openVPN的递归路问题还是要从服务器端下手 openVPN客户端连接指南 Ubuntu系统如何连接或断开openVPN 在SD-WAN网络中应用OpenVPNchatGPT是这样想的 基于CentOS部署SmartDNS chatGPT又火了用openAI写文章到底靠不靠谱 DDNS配置详解 DDNS如何应用到SD-WAN网络中 家庭宽带的公网IPv4地址到底封了多少端口 用SNMP模仿Zabbix读取设备接口流量 CentOS 7多网卡配置最小化安装