Python办公自动化从入门到入土|08 数据容器之字符串
继续第8章 Python字符串操作办公自动化必备技能专栏前言前面我们学习了列表、元组两种序列容器。在处理 Excel 文本、文件名、邮件内容、报表文字时字符串str是最高频使用的数据类型。字符串和元组有一个共同点内容不可直接修改同时支持索引、切片、循环遍历。本章结合大量办公场景讲解字符串常用方法。8.1 什么是字符串办公通俗理解字符串就是由单引号、双引号、三引号包裹的一串文字、数字、符号用来存储文本信息。办公场景文件名称、客户姓名、地址、单元格文字、日志内容、邮件正文全部都是字符串。# 三种定义方式 s1 办公自动化 s2 批量处理Excel s3 多行文字 第一行 第二行 print(s1) print(s2) print(s3)输出结果办公自动化 批量处理Excel 多行文字 第一行 第二行核心特性总结只能存储字符文本长度任意支持下标索引取值允许存在重复字符字符串本身不可以修改支持 for 循环遍历每一个字符索引、切片规则和列表、元组完全一致重点字符串不可原地修改所有替换、分割操作都会生成新字符串原始字符串保持不变。8.2 索引与切片和列表、元组通用语法字符串[起始:结束:步长]左闭右开text 客户张三部门销售部 # 取第0个字符 print(text[0]) # 倒数第一个字符 print(text[-1]) # 切片截取文字 print(text[3:6])输出结果客 部 张三8.3 字符串常用内置方法办公高频8.3.1 len() 获取字符串长度统计文字个数常用于校验单元格文本长度name 李四 print(len(name))输出结果28.3.2 count() 统计子字符串出现次数统计关键词在文本里出现多少次content 业绩 业绩 回款 print(content.count(业绩))输出结果28.3.3 index() 查找字符下标找到子字符串对应的起始索引找不到代码直接报错msg 8月销售报表.xlsx print(msg.index(销))输出结果28.3.4 replace() 字符串替换不会修改原字符串返回新字符串批量替换文字必备清洗 Excel 文本file_name 8月业绩表.pdf new_name file_name.replace(pdf,xlsx) print(原始字符串,file_name) print(替换后,new_name)输出结果原始字符串 8月业绩表.pdf 替换后 8月业绩表.xlsx8.3.5 split() 分割字符串按照指定分隔符把字符串切分成列表文本拆分、解析表格文本超级常用data_text 张三,销售部,15000 res data_text.split(,) print(res)输出结果[张三, 销售部, 15000]8.3.6 strip() 去除首尾字符字符串.strip()去除首尾空格、换行字符串.strip(指定字符)去除首尾所有匹配的字符text1 销售报表 print(text1.strip()) text2 ,,,李四, print(text2.strip(,))输出结果销售报表 李四8.4 for 循环遍历字符串逐个取出里面每一个字符word python for c in word: print(c)输出结果p y t h o n8.5 办公实战案例案例 1批量清洗文件名修改后缀# 原始文件名列表 file_list [9月数据.txt,工资表.txt,库存清单.txt] new_files [] for name in file_list: new_name name.replace(txt,xlsx) new_files.append(new_name) print(new_files)输出结果[9月数据.xlsx, 工资表.xlsx, 库存清单.xlsx]案例 2拆分单元格逗号分隔信息info 王五 | 财务部 | 8600 # 使用竖线分割 info_list info.split( | ) print(f姓名{info_list[0]}部门{info_list[1]})输出结果姓名王五部门财务部案例 3清除文本多余前后空格清洗 Excel 导入的脏数据cell_text 华东区域分公司 clean_text cell_text.strip() print(f清洗前[{cell_text}]) print(f清洗后[{clean_text}])输出结果清洗前[ 华东区域分公司 ] 清洗后[华东区域分公司]8.6 易错避坑重点字符串无法使用下标修改s abc # 下面代码直接报错不允许修改 # s[0] d报错TypeError: str object does not support item assignment想要修改只能通过 replace、切片拼接生成新字符串。所有方法 replace /split/strip不会改动原始字符串必须用变量接收返回结果index () 查找不到内容直接报错如果不想报错可以使用find()8.7 序列容器横向小结列表 / 元组 / 字符串类型标识是否可变核心办公用途列表 list[]可变动态数据、临时存储、批量数据元组 tuple()不可变固定配置、表头、常量数据字符串 str 不可变存储文本、文件名、单元格文字三者共性支持索引、切片、for 循环遍历本章小结字符串使用引号包裹用来存储文本数据属于不可变序列无法原地修改操作后产生新字符串掌握六大核心方法len、count、index、replace、split、strip索引、切片语法和列表、元组完全通用学习成本很低。