Python常用

字符串比较

是否在列表

1、使用 in 运算符
my_list = ['apple', 'banana', 'orange']
if 'banana' in my_list: ##匹配的是一个列表元素,是精确匹配
2、使用 count() 方法
如果字符串在列表中出现了至少一次,返回值大于等于 1;否则,返回值为 0。
my_list = ['apple', 'banana', 'orange', 'banana']
if my_list.count('banana') >= 1:  ##匹配的是一个列表元素,是精确匹配
3、模糊匹配
my_list = ['apple', 'banana', 'orange','apple1']
str1='app'
matching = [s for s in my_list if str1 in s]
print(matching) ####结果如下
['apple', 'apple1']
4、先转为字符串
print(str(my_list).find(str1))   ##结果为2,查找的第一个位置

txt无法换行

使用如下方法对txt文件中的内容进行换行时,出现无法换行的问题:
f.write("\n")  
f.write(变量名+"\r\n")
在 Linux中换行是\n ,winddows中换行是 \r\n ,在linux中用\n写入的文字

删除字符

删除字符串中指定的符号可以使用字符串的replace:
s = "abc123,123。"
s = s.replace(',', '') # 删除逗号
print(s)
s = "   123abc   "
print(s.lstrip())  # "123 abc   " # 删除开头的空格
print(s.rstrip())  # "   123 abc" # 删除结尾的空格
print(s.strip())  # "123 abc" # 删除开头和结尾的空格
print(s.replace(' ', ''))  # "123abc" # 删除字符串中所有的空格


处理excel

三种方式都可以:

1、用xlrd和xlwt进行excel读写;
xlrd是一个库,用于从Excel文件中以.xls格式读取数据和格式化信息
xlwt是一个库,用于将数据和格式化信息写入较旧的Excel文件(例如:.xls),不能写xlsx
如果xlrd版本过高, 会出现xlrd.biffh.XLRDError: Excel xlsx file; not supported
linux: pip install xlrd==1.2.0 --建议这个版本

def open_excel(file= 'manual_command.xlsx'):
    try:
        excel_file = xlrd.open_workbook(file)
        return excel_file
    except Exception as e:
        print(str(e))
excel_content = open_excel()
sheet_names = excel_content.sheet_names() ##打印所有sheet名字
sheet_data = excel_content.sheet_by_name("sheet2") ##获取某个sheet 数据
row_num = sheet_data.nrows ##获取总行数,包括中间的空行
print('总行数:',row_num)
cols_num = sheet_data.ncols
print('表格总列数:', cols_num)
row_data = sheet_data.row_values(2) #获取第2行数据, list返回形式
print(row_data)
column_data = sheet_data.col_values(2)  ##获取第3列数据,list返回形式
print(column_data)
cell_11_2 = sheet_data.cell(10, 1).value
print('第11行第2列的单元格的值:', cell_11_2)
def creat_excel():
    # 创建一个workbook 设置编码
    workbook = xlwt.Workbook(encoding='utf-8')
    # 创建一个worksheet
    worksheet = workbook.add_sheet('Worksheet')
    # 写入excel参数对应 行, 列, 值
    worksheet.write(0, 0, label='测试')
    # 设置单元格宽度
    worksheet.col(0).width = 3333
    # 设置单元格高度
    tall_style = xlwt.easyxf('font:height 520;')
    worksheet.row(0).set_style(tall_style)
    workbook.save('Excel_test.xls')

2、用openpyxl进行excel读写;
openpyxl是一个Python库,用于读取/写入Excel 2010 xlsx/xlsm/xltx/xltm文件
用pandas进行excel读写;
3、pandas支持xls, xlsx, xlsm, xlsb, odf, ods和odt文件扩展名从本地文件系统或URL读取。支持读取单个工作表或工作表列表的选项。

正则re

查找

import re
Str_list='what do you just do, I can\'t believe'
match=re.search('do', Str_list)#re.search 扫描整个字符串并返回第一个成功的匹配
print(match.group(),type(match.group()))  
##结果为 do <class 'str'>
print(match.span(),type(match.span())) #(5, 7) <class 'tuple'> 返回在字符串中的起始位置和结束位置
match1=re.match('do', Str_list) ##re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。
print(match1) ##因为str_list第一个字符串不是do,所以返回None
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

line = "Cats are smarter than dogs";
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
##re.I 忽略大小写
##re.M 多行模式

替换

re 模块提供了re.sub用于替换字符串中的匹配项

phone = "2004-959-559 # 这是一个国外电话号码"
# 删除字符串中的 Python注释
num = re.sub(r'#.*$', "", phone)  ##将#一直到结尾的内容删掉(替换为空,就是删掉)
print("电话号码是: ", num)
##结果为:电话号码是:  2004-959-559 
# 删除非数字(-)的字符串
num = re.sub(r'\D', "", phone)
print("电话号码是 : ", num)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值