
Pepe
12.05.2017
08:56:53
Не могу понять почему когда я делаю print (string), потом копирую результат в cmd то все работает и запускается программа с параметрами, а когда я делаю os.system(string) что то идёт не так. Программа вызывается но параметры не корректно передаются
Как вообще посмотреть что передается в os.system?

Aletheia
12.05.2017
09:13:08

Pepe
12.05.2017
09:14:51

Google

Pepe
12.05.2017
09:14:53
-1
Код ошибки видимо

zhizha
12.05.2017
09:15:47
Может из за /н
\n

Олег
12.05.2017
09:16:13

Pepe
12.05.2017
09:16:33
Может из за /н
У меня такого нет. Если я просто принт сделаю то все правильно

zhizha
12.05.2017
09:16:52
Print сам добавляет в питоне

Pepe
12.05.2017
09:16:54

zhizha
12.05.2017
09:17:01
В конец строки
А копируешь без этого символа

Pepe
12.05.2017
09:17:26
Я передаю os.system(string)
То есть там нет \n и string это точно то что я хочу в cmd передать

Google

zhizha
12.05.2017
09:19:58
Понял,а в сабпроцесе норм все?

Pepe
12.05.2017
09:20:53

zhizha
12.05.2017
09:22:06
stderr глянь

Pepe
12.05.2017
09:24:12
Ад конечно этот питон надо было на С++ делать

zhizha
12.05.2017
09:25:43
Запусти гцц или че там у тя в os.system()

Pepe
12.05.2017
09:27:52

zhizha
12.05.2017
09:29:03
Бля)
А в стринге у тебя полный путь?

Pepe
12.05.2017
09:29:58
Но даже если поменять директорию и сделать относительный ничего не меняется
Программа запускается правильно
Но ей что то не то передается
Os.system('C:/path/executable.exe -param1 ./'+filename+' param2')
И принтом то что надо выводится и работает

zhizha
12.05.2017
09:35:11

Pepe
12.05.2017
09:35:45
Двойный бэкслэши тоже самое дают
Хотя я не понял что там предлагается
\" это добавить?

Google

zhizha
12.05.2017
09:37:26
Пц какой то)
А че за аппа то?)

Pepe
12.05.2017
09:41:14
Симулятор какой то

zhizha
12.05.2017
09:42:27
Тут ещё винапи32 предлагают юзать

Pepe
12.05.2017
09:42:44
Питон просто кривой
Какие то долбоебы делали
Нельзя строку передать в cmd

Олег
12.05.2017
09:43:14

Олег
12.05.2017
09:43:26
Венда говно

zhizha
12.05.2017
09:43:27

Pepe
12.05.2017
09:44:03
Венда говно
Для другого чата тема но винда не причем. Если питон не может строку передать то значит это питон

Олег
12.05.2017
09:44:27

Pepe
12.05.2017
09:44:38

Олег
12.05.2017
09:45:05
Питон программиста *if you know what i mean*
Можно написать скрипт, который будет выводить sys.argv. Запусти его через os.system, чтобы посмотреть, как передаются аргументы.

Pepe
12.05.2017
09:46:48

Google

zhizha
12.05.2017
09:46:58
Пиши на сях

Pepe
12.05.2017
09:47:03
Нафиг не нужен этот язык с тупыми фичами
List comprehension ничего не облегчает и не укорачивает

zhizha
12.05.2017
09:48:00
ptpython юзал кто нить?как оно?

Pepe
12.05.2017
12:33:37
Решил проблему на оверфлоу помогли. Короче если ввести команду в cmd потом скопировать строку в питоноскрипт оно работает. Если сделать в питоноскрипте как я сначала, распечатать и скопировать в cmd то тоже работает. Но если во втором случае запускать через os.system или subprocess.call то ничего не работает. Почему я уже не стал разбираться, говно какое то
Короче os и subprocess как то калечат некоторые строки

Sergei
12.05.2017
12:36:07
может в этом проблема?
если ты сам передаешь в кавычках, а он еще свои подставляет. помню натыкался на это.
Еще надо учитывать, что там есть лимит на длину команды.

Pepe
12.05.2017
12:37:12

Sergei
12.05.2017
12:38:15
Высылай код. Либо если динамически аргументы передаешь, то скрин вызова функции из отладчика
@scaredpepe

Pepe
12.05.2017
12:39:07
Вот тут ещё коменты посмотри
Это мой вопрос

Sergei
12.05.2017
12:42:14
subprocess.call("C:/path_to_exe/file.exe", "param1", "param2", "param3")
@scaredpepe

Google

Pepe
12.05.2017
12:44:01
Сработало subprocess.call(r'....') Где за место многоточия я скопировал из cmd то что вручную ввел
Без параметров одной строкой

Sergei
12.05.2017
13:13:27
Дичь какая-то.
Скинь как пробовал вызывать

Pepe
12.05.2017
15:10:45
Из cmd так работало. И принт тоже самое из питона выдавал, а subprocess.call() не работал
Потом я вставил из cmd в питон subproces.call() процитировав эту строку и тоже заработало

Sergei
12.05.2017
15:27:01
Скинь всю строку с subprocess.call()

Pepe
12.05.2017
16:02:32
Вот рабочий вариант
Param2 = "filename.bin"
Ещё есть такое
Snapshot_files = [os.path.join(dir,file) for dir, dirs, files in os.walk(os.getcwd())
for file in files if str_pattern in file]
Пытался так но оно не работает . Вообще не понимаю как создаются массивы в питоне и объявляются переменные

Igor
12.05.2017
16:14:03
Массив создать:
a = []
далее a.append(elem)