Change Directory and Execute Command - Python

Viewed 234

I have been struggling a lot with this piece of code i wrote by referring tutorials:

    import os
    os.chdir(f'/home/django/image-io/accounts/john_doe/optimized/')
    cwd = os.getcwd()
    logger.info(f'CURRENT WORKING DIRECOTRY :{cwd}')
    subprocess.Popen(f"optimize-images")

What i am trying to do is dynamically change directory on username (john_doe) in this case and run a command optimize-images inside that directory to optimize all images .

It doesn't seem to work.

When i checked the logs , it says:

optimize-images : "No such directory present"

I am not able to understand , where i am doing wrong. any help would be appreciated.

2 Answers

In this code, We are optimizing the images contained in the optimized folder.

import os
import subprocess
os.chdir(r'/home/django/image-io/accounts/john_doe/optimized')
cwd = os.getcwd()
p=subprocess.Popen([r"optimize-images", cwd])

We need to pass the the parameters in the array list format. You can get more details here.

subprocess.Popen([r"optimize-images", cwd])

Note:

  • r is used to indicate the raw string.
  • f is used when we need to include the value of Python expressions inside strings.
Related