Как получить полное имя папки, состоящее только из первых 10 символов
Итак, у меня есть следующее приложение...
У меня есть папка, в которой больше десяти тысяч папок. Каждая папка - это работа, и все они имеют одинаковый формат:
"десять цифр" + _ + "название задания"
Нравится:
"1234567890_Stackru"
Как мне найти полное имя этой папки, состоящее только из первых 10 цифр?
Это мой код Python: Где path
это мой текущий рабочий каталог и job
мои десять цифр я хочу найти
for dirs in os.listdir(path):
if fnmatch.fnmatch(dirs, job+"*"):
job_name = dirs
break
job_path=path+'\\'+job_name
print(job_path)
С помощью этого кода я могу найти полное название задания, но независимо от того, какое задание я прошу, его поиск всегда занимает 23 секунды.
Есть ли более быстрый способ найти это?
Я имею в виду, что если я вручную захожу в папки с заданиями, я могу искать в папке за 4-5 секунд, но вручную.
2 ответа
Вот как вы можете использовать glob.glob()
:
from glob import glob
path = 'C:\\Users\\User\\Desktop\\Folder'
ten_digits = '1234567890'
for file in glob(f"{path}\\{ten_digits}_*"):
print(file)
Может ОС быстрее, можно попробовать:
import subprocess
number = 54932034857
dirname = subprocess.run([f"ls -d {number}*"],
stdout=subprocess.PIPE,
shell=True).stdout.decode("utf-8").split("\n")[0]
print(dirname)
Возможно, вы можете использовать dir
вместо того ls
если вы на окнах.