Python提取字符串中间部分(.partition())

方法

使用.partition()函数。

举例

要提取的内容

比如批量提取文件名中包含的年份:

# 先把所有待提取的文件放入同一个文件夹
folder = r"C:\Users\abc\Desktop\redo\demo\" # 文件夹路径
# get_sortedlist是我自己定义的按顺序提取文件夹中文件路径的函数
file_list = get_sortedlist(folder) 

自定义函数的具体内容:get_sortedlist

得到文件路径列表:

注意Windows下即使定义folder路径是使用的
r"C:\Users\abc\Desktop\redo\demo\",读取到的文件路径列表中路径仍然会是"C:\\Users\\abc\\Desktop\\redo\\demo\\2010-2830.csv"
Mac下文件路径比较简单,'/Users/apple/Downloads/形式就行。

["C:\\Users\\abc\\Desktop\\redo\\demo\\2010-2830.csv",
"C:\\Users\\abc\\Desktop\\redo\\demo\\2011-3682.csv",
"C:\\Users\\abc\\Desktop\\redo\\demo\\2012-4726.csv",
"C:\\Users\\abc\\Desktop\\redo\\demo\\2013-4827.csv",
"C:\\Users\\abc\\Desktop\\redo\\demo\\2014-5273.csv"]
字符串提取

自定义一个使用.partition()做字符串提取函数:

def get_str_btw(s, f, b):
    '''提取字符串s中,字符串f和b的中间部分'''
    par = s.partition(f)
    return (par[2].partition(b))[0][:]
调用:
for filename in file_list:
	front_str = "C:\\Users\\abc\\Desktop\\redo\\demo\\"
	year = get_str_btw(filename,front_str,".csv") [0:4] # 年份为截取到的字符串的前4位
print(year,end=' ')

注意这里截取字符串的front_str不能用r"C:\Users\abc\Desktop\redo\demo\"

结果
2010 2011 2012 2013 2014
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. capitalize(): 将字符串的第一个字母转换为大写字母。 2. casefold(): 将字符串转换为小写字母,并考虑特殊字符的情况。 3. center(width, fillchar): 将字符串居中,并在两侧用指定字符填充。 4. count(substring, start=0, end=len(string)): 返回字符串中指定子字符串出现的次数。 5. encode(encoding='utf-8', errors='strict'): 将字符串编码为指定编码格式的字节串。 6. endswith(suffix, start=0, end=len(string)): 检查字符串是否以指定后缀结尾。 7. expandtabs(tabsize=8): 将字符串中的制表符转换为空格。 8. find(substring, start=0, end=len(string)): 返回指定子字符串字符串中第一次出现的位置。 9. format(*args, **kwargs): 将字符串中的占位符替换为指定的值。 10. index(substring, start=0, end=len(string)): 返回指定子字符串字符串中第一次出现的位置,如果未找到则引发 ValueError 异常。 11. isalnum(): 检查字符串是否只包含字母和数字。 12. isalpha(): 检查字符串是否只包含字母。 13. isdecimal(): 检查字符串是否只包含十进制数字。 14. isdigit(): 检查字符串是否只包含数字。 15. isidentifier(): 检查字符串是否是一个合法的 Python 标识符。 16. islower(): 检查字符串是否只包含小写字母。 17. isnumeric(): 检查字符串是否只包含数字字符。 18. isprintable(): 检查字符串是否可以打印,即是否不包含控制字符。 19. isspace(): 检查字符串是否只包含空格字符。 20. istitle(): 检查字符串是否符合标题化规则。 21. isupper(): 检查字符串是否只包含大写字母。 22. join(iterable): 将可迭代对象中的元素连接成一个字符串。 23. ljust(width, fillchar): 将字符串左对齐,并在右侧用指定字符填充。 24. lower(): 将字符串转换为小写字母。 25. lstrip(chars=None): 删除字符串左侧指定的字符。 26. partition(separator): 在第一个出现的指定分隔符处将字符串分成三部分。 27. replace(old, new, count=-1): 将字符串中指定的子字符串替换为新的字符串。 28. rfind(substring, start=0, end=len(string)): 返回指定子字符串字符串中最后一次出现的位置。 29. rindex(substring, start=0, end=len(string)): 返回指定子字符串字符串中最后一次出现的位置,如果未找到则引发 ValueError 异常。 30. rjust(width, fillchar): 将字符串右对齐,并在左侧用指定字符填充。 31. rpartition(separator): 在最后一个出现的指定分隔符处将字符串分成三部分。 32. rstrip(chars=None): 删除字符串右侧指定的字符。 33. split(separator=None, maxsplit=-1): 将字符串分割成一个列表。 34. splitlines(keepends=False): 将字符串按照行分割成一个列表。 35. startswith(prefix, start=0, end=len(string)): 检查字符串是否以指定前缀开头。 36. strip(chars=None): 删除字符串两侧指定的字符。 37. swapcase(): 将字符串中的大写字母转换为小写字母,小写字母转换为大写字母。 38. title(): 将字符串转换为标题化形式。 39. translate(table): 使用指定的转换表对字符串进行转换。 40. upper(): 将字符串转换为大写字母。 41. zfill(width): 将字符串左侧用 0 填充,使其达到指定的宽度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值