Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calling multiple commands using os.system in Python

I would like to invoke multiple commands from my python script. I tried using the os.system(), however, I'm running into issues when the current directory is changed.

example:

os.system("ls -l")
os.system("<some command>") # This will change the present working directory 
os.system("launchMyApp") # Some application invocation I need to do.

Now, the third call to launch doesn't work.

like image 395
user3003701 Avatar asked Nov 18 '13 07:11

user3003701


People also ask

How do you use multiple commands in Python?

Run Multiple Commands at Once In this section, you'll learn how to run multiple shell commands at once from Python. In windows: You can use the & operator to concatenate two commands. In Linux: You can use the | operator to concatenate two commands.

Can Python be used to run systems commands?

Python allows executing shell commands using various modules like os, subprocess, sys, platform, etc.


2 Answers

os.system is a wrapper for Standard C function system(), and thus its argument can be any valid shell command as long as it fits into the memory reserved for environment and argument lists of a process.

So, separate those commands with semicolons or line breaks, and they will be executed sequentially in the same environment.

os.system(" ls -l; <some command>; launchMyApp")
os.system('''
ls -l
<some command>
launchMyApp
''')
like image 86
Anynomous Avatar answered Nov 01 '22 11:11

Anynomous


Try this

import os

os.system("ls -l")
os.chdir('path') # This will change the present working directory
os.system("launchMyApp") # Some application invocation I need to do.
like image 21
Muthu Kumar Avatar answered Nov 01 '22 10:11

Muthu Kumar