Python:在(int(''.join(filter(str.isdigit, random_file))))中添加分隔符

Python: Add a delimiter to (int(''.join(filter(str.isdigit, random_file))))

所以我尝试从 img_20.png 这样的文件名打印数字,在这种情况下会打印 20.

但是当文件是 .mp4 文件时,Python 将 img_51.mp4 读作 514 而不是 51

有没有办法向此脚本添加定界符 .,以便打印 51 而不是 514

脚本

import os, sys, random

folder_path = "FOLDERPATH"

def upload_photo():
    list = os.listdir(folder_path)
    number_files = len(list)

    for i in range(number_files):
        e = 0
        try:
            random_file = random.choice(os.listdir(folder_path))
            print(random_file)
            print (int(''.join(filter(str.isdigit, random_file))))
            break
        except:
            print("Hit except")

upload_photo()

输出

Matts-MacBook-Pro-5:Reddit matt$ python test.py
img_4.mp4
44
Matts-MacBook-Pro-5:Reddit matt$ python test.py
img_43.mp4
434
Matts-MacBook-Pro-5:Reddit matt$ python test.py
img_33.jpg
33
Matts-MacBook-Pro-5:Reddit matt$ python test.py
img_23.mp4
234
Matts-MacBook-Pro-5:Reddit matt$ python test.py
img_16.jpg
16
Matts-MacBook-Pro-5:Reddit matt$ python test.py
img_36.jpg
36
Matts-MacBook-Pro-5:Reddit matt$ python test.py
img_14.mp4
144

(移动评论回答)

您可以使用split方法删除文件扩展名。

试试这个:

print (int(''.join(filter(str.isdigit, random_file.split('.')[0]))))

如果文件没有扩展名,这也有效。