python strip()与 split()方法

在python在处理字符串时,解析txt文本时,经常会遇到 strip()与 split()函数。
一、strip()删除开头或者结尾部分字符,常用于删除空白字符
声明:s为字符串,rm为要删除的字符序列
s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符
注意:

  1. 当rm为空时,默认删除空白符(包括’\n’, ‘\r’, ‘\t’, ’ ')
    以下为输出实例
sting=' \t\n Love 1314 for zhu   '
print(sting.strip())
#Love 1314 for zhu  删除开头和结尾的空字符, 包括'\n' '\t' '\r'  ''
sting='Love 1314 for zhu Love'
print(sting.strip('Love'))
# 1314 for zhu      删除开头结尾的
print(sting.lstrip('Love'))
# 1314 for zhu Love 删除开头的
print(sting.rstrip('Love'))
#Love 1314 for zhu  删除结尾的

二、split(rm)方法 以’rm’为标志 把字符串进行分割
例如

sting='Love.1314.for.zhu'
print(sting.split('.'))
#['Love', '1314', 'for', 'zhu'] 以'.'为标志将字符串进行分割
print(sting.split('.',1))
#['Love', '1314.for.zhu']       以'.'为标志将字符串进行分割,只分割一次

或者时解析网址时

sting='www.baidu.com'
print(sting.split('.'))
#输出['www', 'baidu', 'com']

三、在处理字符串时的应用
一个正则匹配的例子:

str="xxxxxxxxxxxx5 [50,0,50]>,xxxxxxxxxx"
lst = str.split("[")[1].split("]")[0].split(",")
print(lst)
#结果 ['50', '0', '50']
# [1]表示按‘[’分割后得到数组['xxxxxxxxxxxx5', 50,0,50]>,xxxxxxxxxx] 取下标为1的元素

四、再读取处理txt文件时
例如读取隐形眼镜数据集中的数据
在这里插入图片描述

fr=open('lenses.txt')
print(fr.readlines())
输出结果为['young\tmyope\tno\treduced\tno lenses\n', 'young\tmyope\tno\tnormal\tsoft\n'.....]
lenses=[data.strip().split('\t')  for data in fr.readlines()]
print(lenses)
输出结果为 [['young', 'myope', 'no', 'reduced', 'no lenses'], ['young', 'myope', 'no', 'normal', 'soft'],,,等]

readlines()方法读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存。data.strip().split(’\t’)去除每一个元素 [young\tmyope\tno\treduced\tno lenses\n] 的\n,然后以‘\t’分割

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以按照以下方式修改代码,将数据和下拉框的值分别写入两列: ```python def save_to_excel(self): # 创建一个新的 Workbook 对象 workbook = openpyxl.Workbook() # 选择一个工作表 sheet = workbook.active # 获取文本框中的数据 data = self.textbox.get(1.0, tk.END) # 获取下拉输入框的值 values = [] for widget in self.textbox.winfo_children(): if isinstance(widget, tk.ttk.Combobox): value = widget.get() if value: values.append(value) else: messagebox.showwarning("警告", "请填写下拉输入框!") return # 判断文本框中是否存在内容 if not data.strip(): messagebox.showwarning("警告", "文本框中没有内容!") return # 将数据和下拉框的值按列写入工作表中 rows = data.strip().split("\n") for i, row in enumerate(rows): cells = row.split("\t") # 写入数据列 sheet.cell(row=i + 1, column=1, value=cells[0]) # 写入下拉框的值列 if values: sheet.cell(row=i + 1, column=2, value=values[i] if i < len(values) else "") # 写入其余列 for j in range(1, len(cells)): sheet.cell(row=i + 1, column=j + 2, value=cells[j]) # 添加下拉框的值到数据验证中 if values: validation = openpyxl.worksheet.datavalidation.DataValidation(type="list", formula1='"' + ','.join(values) + '"') sheet.add_data_validation(validation) validation.add(sheet["B1:B" + str(len(rows))]) # 保存 Excel 文件 workbook.save("output.xlsx") ``` 此代码中,我们将数据和下拉框的值分别写入到第一列和第二列,并将其余列依次写入。同时,我们添加了一个数据验证,将下拉框的值添加到验证列表中,以确保它们是有效的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值