我尝试以下代码但未能使用python 3.4.3删除尾随数字
file_name = "48athens22.jpg"
result = file_name.strip("0123456789")
print (result)
输出: athens22.jpg
出了什么问题?
答案 0 :(得分:1)
strip()
仅从字符串末尾开始; 22
不在字符串的末尾。
以下是如何做你想做的事:
import os
def strip_filename(filename):
root, ext = os.path.splitext(filename)
root = root.strip('0123456789')
return root + ext
print(strip_filename('48athens22.jpg')) # athens.jpg
答案 1 :(得分:0)
strip
仅从字符串的开头和结尾删除。如果您想删除子字符串或模式的任何出现,请尝试使用re.sub
。
E.g。
re.sub('[0-9]', '', file_name)
答案 2 :(得分:0)
这些数字不是尾随。它们来自'.jpg'
。
file_name = "48athens22.jpg"
name, *extension = file_name.rpartition('.')
result = name.strip("0123456789") + ''.join(extension)
print (result)
答案 3 :(得分:0)
没有尾随数字,字符串中的最后一个字符'g',22实际上位于中间,如果您不想在条带化时考虑扩展名,则必须首先根据'分割file_name “。然后剥离第一部分然后重新加入它们。
代码 -
filenames = file_name.split('.')
result = filenames[0].strip('0123456789') + '.' + '.'.join(filenames[1:])
print(result)
答案 4 :(得分:0)
适合我:
file_name = "48athens22.jpg1234"
result = file_name.strip("0123456789")
print(result)
给出:
athens22.jpg
如果您要删除所有数字,请尝试:
import re
file_name = "48athens22.jpg1234"
result = re.sub(r'\d+', "", file_name)
print(result)
给出:
athens.jpg
如果您只想删除“。”之前的数字,请尝试:
result = re.sub(r'\d+\.', ".", file_name)