from os import replace, fspath
from pathlib import Path
XLS_DIR = Path(_conf.get('unv_dir'), 'cert_in')
# sheet = _xl.open( Path(XLS_DIR) / f'{equip_serial_number}.xls')
pattern = "*.xls"
xls_files = []
for currentFile in XLS_DIR.glob(pattern):
xls_files.append(currentFile)
count_all = len(xls_files)
if count_all == 0:
print(f"Нема жодного XLS-файлу у {XLS_DIR}")
elif count_all == 1:
print(f'Знайдено файл {xls_files[0]}')
cnt4job = int(input(f'Почати обробку? (0/1) '))
elif count_all > 1:
print(f'Знайдено {count_all} файлів')
cnt4job = int(input(f'Скільки файлів обробити? (0-{count_all}) '))
else:
cnt4job = 0
print('Щось пішло не так...')
print()
i = 0
for xls_file in xls_files:
if i < cnt4job:
sheet = _xl.open(xls_file)
create_pdf(sheet)
# xls_file - це Path, а '.ready' - рядок. os.fspath - перетворює Path в рядок
replace(xls_file, Path( fspath(xls_file) + '.ready') )
i += 1
print('Done')
Модуль glob знаходить усі імена шляхів, що відповідають заданому шаблону, згідно з правилами, що використовуються оболонкою Unix, хоча результати повертаються в довільному порядку. Розгортання тильди не виконується, але *, ?, і діапазони символів, виражені за допомогою [] , будуть правильно зіставлені. Це робиться шляхом спільного використання функцій os.scandir() і fnmatch.fnmatch() а не фактичного виклику підоболонки.