Python 3 от CMD

Я пытаюсь запустить этот файл.PY из командной строки:

# Merge two .BSG files
# Starting block and world position are taken from the first file
# Example: "bsgmerge input.bsg output.bsg merged.bsg"

import io, sys

one = open(sys.argv[1]).readlines()
two = open(sys.argv[2]).readlines()

for n in [1,3,5,7,9,11,17,19,21,23]:
    one[n] = one[n][:-1]+"|"+two[n].partition("|")[2]

open(sys.argv[3],"w").write("".join(one))

Это программа, которая берет создание из игры Beseige и объединяет его с другим сохраненным созданием, так что открытие объединенного файла приводит к присутствию обоих созданий. Если вы хотите больше подробностей, вы можете прочитать об этом здесь.

У меня возникли проблемы с выяснением, как вызвать эту программу из командной строки. Сначала я подумал, что проблема в том, что у меня Python 2 (для этого требуется Python 3), поэтому я удалил 2 и установил 3. Это не помогло.

То, что я делаю, - это ввод команды "python" для запуска среды Python в CMD, а затем ввод команды для вызова программы на основе третьего комментария в файле ("bsgmerge input.bsg output.bsg merged.bsg"),

Я пытался использовать полные пути к файлам или просто перейти в правильный каталог, прежде чем вводить команду "python" и использовать только имена файлов, но пока мне не повезло.

Когда я нахожусь в правильном каталоге, затем войдите в среду Python, набрав команду "bsgmerge 1.bsg 2.bsg M.bsg" (мои существующие файлы для объединения - 1.bsg и 2.bsg), возникает эта ошибка:

File "<stdin>", line 1
  bsgmerge 1.bsg 2.bsg M.bsg
            ^

SyntaxError: invalid syntax

Я прошел курс по Python (именно поэтому у меня на компьютере был Python 2) прошлой осенью, поэтому я заметил, что в приведенном выше коде нет функции def, определяющей функцию, с которой я никогда не сталкивался, поэтому Я думаю, что это корень моих проблем.

Заранее спасибо за помощь.

1 ответ

У меня была, вероятно, такая же проблема с лаунчером Python.

Если вы используете Linux, первая строка должна быть:

#! /path/to/your/python/3

В Windows это несколько сложнее:

В реестре путем regedit изменитьHKEY_CLASSES_ROOT\Python.File\shell\open\command от "C:\Python27\python.exe" "%1" %* в "C:\Windows\py.exe" "%1" %*,

И первая строка сценария должна быть:

#! python3

Теперь это должно работать правильно.

Другие вопросы по тегам