Как узнать полное имя файла по его началу?
Нужны файлы ssfn8863805031775494 и ssfn8786241405251389450. Они находятся в корневой папке стима, но последние цифры после ssfn рандомные.
Как мне узнать название файла полностью?
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
воспользуйтесь pathlib:
from pathlib import Path
steam_dir = Path("/path/to/steam")
ssfn_files = list(steam_dir.glob("ssfn*"))
Автор решения: Andy Pavlov
→ Ссылка
Можно также воспользоваться библиотекой os
Вариант для получения только имен файлов:
import os
path = 'C:\\Program Files (x86)\\Steam'
mask = 'ssfn'
files = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f)) and f.startswith(mask)]
Вариант получения полных путей к файлам
files = [f for f in map(lambda x: os.path.join(path, x), os.listdir(path)) if os.path.isfile(f) and os.path.basename(f).startswith(mask)]
Через os.listdir(path) получаем список содержимого папки, через os.path.isfile(f) проверяем, что файл, и с помощью f.startswith(mask) проверяем, что файл начинается с заданной маски.
Вариант с копированием файлов через copy2:
import os
from shutil import copy2
path = 'C:\\Program Files (x86)\\Steam'
dest = os.getcwd()
mask = 'ssfn'
files = [f for f in map(lambda x: os.path.join(path, x), os.listdir(path)) if os.path.isfile(f) and os.path.basename(f).startswith(mask)]
for f in files:
copy2(src=f, dst=dest)