Как добавить escape-символы в имя файла, которое будет использоваться командой оболочки?Python

Программы на Python
Ответить
Anonymous
 Как добавить escape-символы в имя файла, которое будет использоваться командой оболочки?

Сообщение 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()
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»