Скрипт запрашивает путь к файлу, но возвращает ошибку

avatar
Andrew
7 апреля 2018 в 23:43
83
1
0

У меня есть скрипт Python, который предлагает мне выбрать входную папку. Я запускаю его на OSX.

Проблема в том, что когда я пытаюсь записать входной путь, он возвращает мне ошибку. Допустим, входная папка — «Документы», вот что там написано:

MBPAdmin:moviep3 Admin$ python merge_videos.py
Enter path to input folder: /Documents
Traceback (most recent call last):
  File "merge_videos.py", line 13, in <module>
    input_folder = input(input_folder_label)
  File "<string>", line 1
    /Documents
    ^
SyntaxError: invalid syntax

Можете помочь?

Редактировать: Вот часть кода, если поможет.

from moviepy.editor import VideoFileClip, concatenate_videoclips

import time
import os
import sys


input_folder_label = 'Enter path to input folder: '
output_folder_label = 'Enter path to output folder: '
video_to_be_merged_label = 'Enter path to video that should be merged at the end of each video: '
default_output_folder_name = 'merged_videos' + str(time.time())

input_folder = input(input_folder_label)
input_folder = '/Users/burlicconi/Downloads/filmovi'
try:
    assert os.path.exists(input_folder)
except AssertionError as exc:
    print("Input folder was not found at {}".format(input_folder))
    sys.exit()
print('Input folder exists: {}'.format(input_folder))
Источник
Stop harming Monica
7 апреля 2018 в 23:46
0

У меня работает в python3.

Andrew
7 апреля 2018 в 23:53
0

Как прописать путь к папке?

Stop harming Monica
8 апреля 2018 в 09:11
0

Просто /Documents

Ответы (1)

avatar
zwer
8 апреля 2018 в 02:08
0

Проблема в том, что Python 2.x попытается оценить пользовательский ввод при использовании input(), вам нужно использовать raw_input()<x>, поэтому в нем Python не пытается это сделать. Изменить:

input_folder = input(input_folder_label)

до

input_folder = raw_input(input_folder_label)

Чтобы заставить его работать в Python 2.x или, что еще лучше, затенить встроенный input() в Python 2.x, поскольку вы все равно не будете использовать его как таковой:

# after your imports, at the beginning of your script:
try:
   input = raw_input
except NameError:
   pass  # Python 3.x, ignore...

И теперь вы можете использовать его как на Python 2.x, так и на Python 3.x.