То, что сделать с “Входной строкой, является слишком длинным” сообщением об ошибке?

Я собираюсь игнорировать первый сегмент сценария, так как кажется, что вы заботитесь только о части .click. То, что вы можете сделать, это иметь переменную, которая чередуется между 0.0 и 0.8, и иметь значение, на которое установлена ​​громкость. Грубый макет ниже:

var change = 0.8
$(function() {
    $("#myVideo").click(function() {
        this.volume = change;  
        if (change == 0.8) { change = 0.0 }
        else { change = 0.8 }                          
    });
});
10
задан Tony Trozzo 4 September 2013 в 15:37
поделиться

5 ответов

Необходимо использовать модуль подпроцесса вместо этого. См. этот небольшой документ для того, как переписать вызовы os.system для использования подпроцесса.

7
ответ дан 3 December 2019 в 15:06
поделиться

Необходимо использовать подпроцесс вместо os.system.

подпроцесс имеет преимущество способности изменить каталог для Вас:

import subprocess
my_cwd = r"..\folder\"
my_process = subprocess.Popen(["command name", "option 1", "option 2"], cwd=my_cwd)
my_process.wait() # wait for process to end
if my_process.returncode != 0:
    print "Something went wrong!"

Модуль подпроцесса содержит некоторые функции помощника также если вышеупомянутые немного подробные взгляды.

2
ответ дан 3 December 2019 в 15:06
поделиться

Принятие Вас использует окна от обратных косых черт, Вы могли записать .bat файл из Python и затем os.system() на этом. Это - взлом.

1
ответ дан 3 December 2019 в 15:06
поделиться

Удостоверьтесь, когда Вы используете '\' в Ваших строках, что их правильно оставляют.

Python использует '\' в качестве символа ESC, таким образом, строка "..\folder\filename" оценивает к "..folderfilename" так как завершенный f является все еще f.

Вы, вероятно, хотите использовать

r"..\folder\filename"

или

"..\\folder\\filename"
1
ответ дан 3 December 2019 в 15:06
поделиться

Даже неплохо использовать subprocess.Popen(), но это не решает проблему.

Ваша проблема не в 255 символах, это было верно во времена DOS, позже увеличилось до 2048 для Windows NT/2000 и снова увеличилось до 8192 для Windows XP+.

Настоящее решение состоит в том, чтобы обойти очень старую ошибку в Windows API: _popen() и _wpopen().

Если вы используете кавычки в командной строке, вы должны добавить всю команду в кавычки, иначе вы получите сообщение об ошибке Слишком длинная строка ввода.

Все операционные системы Microsoft, начиная с Windows XP, имели ограничение в 8192 символа, что теперь достаточно для любого приличного использования командной строки, но они забыли решить эту ошибку.

Чтобы преодолеть их ошибку , просто заключите всю команду в двойные кавычки, а если вы хотите узнать больше, прочитайте комментарий MSDN к _popen().

Будьте осторожны, потому что это работает:

prog
"prog"
""prog" param"
""prog" "param""

Но это не будет работать:

""prog param""

Если вам нужна функция, которая добавляет кавычки, когда они нужны, вы можете взять ее с http://github. com/ssbarnea/tendo/blob/master/tendo/tee.py

18
ответ дан 3 December 2019 в 15:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: