# Remove file extension and leading digits
file = filename.split('.')[0].lstrip(string.digits)
# Replace punctuation characters with underscores
# t = {ord(i) : '_' for i in string.punctuation}
file = file.translate(t)
对于上面的代码,我得到一个错误如下:
file = file.translate(t)
TypeError: expected a character buffer object
但它表明t应该是一个字符缓冲区对象。
您可以使用string.maketrans()
来创建映射表。
table = file.maketrans(string.punctuation, '_' * len(string.punctuation))
file = file.translate(table)
使用此:
t = {ord(i) : ord('_') for i in string.punctuation}
file = file.translate(t)