Команда Python Running OS с кавычками внутри

#!/usr/bin/python
import os

readLine = open('desktops.txt','r')

for line in readLine:
        machineName = line
        query = os.system('wmic -U corp.fakedomain.com/domainusername%password //192.168.1.100 "Select * from Win32_UserAccount Where LocalAccount = True"|grep "500|"|cut -d "\\" -f 2|cut -d "|" -f1')

Я получаю следующую ошибку...

myhostname: ~ #./getLocalAdminNames.py sh: синтаксическая ошибка: неопределенная строка в кавычках sh: синтаксическая ошибка: неопределенная строка в кавычках sh: синтаксическая ошибка: неопределенная строка в кавычках sh: синтаксическая ошибка: неопределенная строка в кавычках sh: синтаксическая ошибка: неопределенная строка в кавычках

Затем, после устранения ошибки, я хотел бы заменить IP-адрес переменной machineName.

Любая помощь будет принята с благодарностью.

1 ответ

Решение

Вы должны избежать ваших обратных наклонных черт. замещать \\ с \\\\:

os.system('wmic -U corp.fakedomain.com/domainusername%password //192.168.1.100 "Select * from Win32_UserAccount Where LocalAccount = True"|grep "500|"|cut -d "\\\\" -f 2|cut -d "|" -f1')

или, сделайте свою строку raw добавляя r префикс:

os.system(r'wmic -U corp.fakedomain.com/domainusername%password //192.168.1.100 "Select * from Win32_UserAccount Where LocalAccount = True"|grep "500|"|cut -d "\\" -f 2|cut -d "|" -f1')

Также см:

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