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
Теперь это должно работать правильно.