SMBConnect имеет следующую функцию listPath, которая перечисляет содержимое данного каталога.
listPath (service_name, path, search = 55, pattern = '*', timeout = 30)
Получить список каталогов файлов / папок по пути
Параметры:
service_name (string / unicode) - имя общей папки для пути
путь (строка / юникод) - путь относительно имени_сервиса, где нам интересно узнать о его файлах / подпапках.
search (integer) - целочисленное значение, составленное из побитового ИЛИ из битов SMB_FILE_ATTRIBUTE_xxx (см. Smb_constants.py). Значение поиска по умолчанию будет запрашивать все доступные только для чтения, скрытые, системные, архивные файлы и каталоги.
pattern (string / unicode) - фильтр, применяемый к результатам перед возвратом клиенту.
Возвращает:
Список экземпляров smb.base.SharedFile.
newConn=SMBConnection(arguments.username, password, DEFAULT_CLIENT_NAME, arguments.hostname, domain=arguments.domain,
use_ntlm_v2=True, is_direct_tcp=True)
assert newConn.connect(ip_address, 445, timeout=60)
files = newConn.listPath('C$', '/' + 'testing', '*.pdf')
for file in files:
print(file.filename)
Я не могу заставить сопоставление с образцом измениться на что-то конкретное. Выше я хочу распечатать только те имена файлов, которые содержат «.pdf» в списке. Вместо этого, когда код выполняется, я просто получаю ВСЕ файлы. Никаких ошибок или чего-либо еще. Я пробовал с и без «*» и «.» и получите те же результаты.