Thanks a lot for your quick responses Mrab and appreciate the same. I changed the snippet as below, still it seems to be an issue,
I am using python3 version: def main(ssid, pw): try: cmd = "nmcli device wifi connect '%s' password '%s'" % (ssid, pw) proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, universal_newlines=True) stdout, stderr = proc.communicate() retcode = proc.returncode print("printing stdout!!!!!!!!!!", stdout) print("printing retcode!!!!!!!!!!", retcode) except subprocess.CalledProcessError as e: s = """While executing '{}' something went wrong. Return code == '{}' Return output:\n'{}' """.format(cmd, e.returncode, e.output, shell=True) raise AssertionError(s) #return proc.strip().decode("utf-8") #return proc.decode("utf-8").strip() #return proc.decode("utf-8") * return stdout.strip().decode("utf-8")* main("Apartment 18", "40672958689850014685") /home/srinivasan/Downloads/wifidisconnectissuenov23_homework/venv/bin/python /home/srinivasan/Downloads/wifidisconnectissuenov23_homework/qa/test_library/test4.py printing stdout!!!!!!!!!! printing retcode!!!!!!!!!! 0 Traceback (most recent call last): File "/home/srinivasan/Downloads/wifidisconnectissuenov23_homework/qa/test_library/test4.py", line 37, in <module> main("Apartment 18", "40672958689850014685") File "/home/srinivasan/Downloads/wifidisconnectissuenov23_homework/qa/test_library/test4.py", line 34, in main return stdout.strip().decode("utf-8") *AttributeError: 'str' object has no attribute 'decode'* Process finished with exit code 1 On Sun, Nov 25, 2018 at 11:49 PM MRAB <pyt...@mrabarnett.plus.com> wrote: > On 2018-11-25 17:54, srinivasan wrote: > > Hope now I have changed on the string output as below, could you > > please correct me if am still wrong? > > > > import sys > > import subprocess > > > > interface = "wlan0" > > > > > > def main(ssid, pw): > > > > try: > > cmd = "nmcli device wifi connect '%s' password '%s'" % (ssid, pw) > > > > proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, > > stderr=subprocess.PIPE, shell=True, universal_newlines=True) > > stdout, stderr = proc.communicate() > > retcode = proc.returncode > > > > print("printing stdout!!!!!!!!!!", stdout) > > print("printing retcode!!!!!!!!!!", retcode) > > > > except subprocess.CalledProcessError as e: > > s = """While executing '{}' something went wrong. > > Return code == '{}' > > Return output:\n'{}' > > """.format(cmd, e.returncode, e.output, > > shell=True) > > raise AssertionError(s) > > > > #return proc.strip().decode("utf-8") > > * return proc.decode("utf-8").strip()* > > > [snip] > > No. As I said in _my_ post, 'proc' is the process itself. What you want > is the string that it output, which, in your code, is 'stdout', so: > > return stdout.strip().decode("utf-8") > > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list