Я просматриваю каталог и для каждого видеофайла проверяю, не поврежден ли он. Многие из них содержат пробелы или круглые скобки в имени файла, что приводит к сбою команды оболочки ffmpeg в моем скрипте Python. Как получить имена файлов в abs_file_path с escape-символами, предшествующими специальным символам?
Пример имени файла: Имя фильма (1080p). Цель: Фильм\Название\ \(1080p\).
for filename in os.listdir(directory):
if filename.endswith(tuple(VIDEO_EXTENSIONS)):
print(f'PROCESSING: {filename}...')
abs_file_path = os.path.join(directory, filename)
proc = subprocess.Popen(f'./ffmpeg -v error -i {abs_file_path} -f null - 2>&1', shell=True, stdout=subprocess.PIPE)
output = proc.communicate()[0]
row = ''
if not output:
# Healthy
print("\033[92m{0}\033[00m".format("HEALTHY -> {}".format(filename)), end='\n') # red
row = [filename, 0]
else:
# Corrupt
print("\033[31m{0}\033[00m".format("CORRUPTED -> {}".format(filename)), end='\n') # red
row = [filename, 1]
results_file_writer.writerow(row)
results_file.flush()
results_file.flush()
results_file.close()
Как добавить escape-символы в имя файла, которое будет использоваться командой оболочки? ⇐ Python
Программы на Python
1774739347
Anonymous
Я просматриваю каталог и для каждого видеофайла проверяю, не поврежден ли он. Многие из них содержат пробелы или круглые скобки в имени файла, что приводит к сбою команды оболочки ffmpeg в моем скрипте Python. Как получить имена файлов в abs_file_path с escape-символами, предшествующими специальным символам?
Пример имени файла: Имя фильма (1080p). Цель: Фильм\Название\ \(1080p\).
for filename in os.listdir(directory):
if filename.endswith(tuple(VIDEO_EXTENSIONS)):
print(f'PROCESSING: {filename}...')
abs_file_path = os.path.join(directory, filename)
proc = subprocess.Popen(f'./ffmpeg -v error -i {abs_file_path} -f null - 2>&1', shell=True, stdout=subprocess.PIPE)
output = proc.communicate()[0]
row = ''
if not output:
# Healthy
print("\033[92m{0}\033[00m".format("HEALTHY -> {}".format(filename)), end='\n') # red
row = [filename, 0]
else:
# Corrupt
print("\033[31m{0}\033[00m".format("CORRUPTED -> {}".format(filename)), end='\n') # red
row = [filename, 1]
results_file_writer.writerow(row)
results_file.flush()
results_file.flush()
results_file.close()
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия