Running a external program using Python [duplicate] - python

This question already has answers here:
How do I execute a program or call a system command?
(65 answers)
Closed 3 years ago.
I want to launch a external program like notepad.exe using python. I want to have a script that just runs Notepad.exe.

It's really simple with Python's builtin os module.
This will start Microsoft Notepad:
import os
# can be called without the filepath, because notepad is added to your PATH
os.system('notepad.exe')
Or if you want to launch any other program just use:
import os
# r for raw-string, so don't have to escape backslashes
os.system(r'path\to\program\here\program.exe')

Would recommend the subprocess module. Just build up a list of arguments like you would run in the terminal or command line if you are on windows then run it.
import subprocess
args = ['path\to\program\here\program.exe']
subprocess.call(args)
Check out the docs here for all of the other process management functionality.

this can be done using Python OS. Please see the code below for an example.
import os
os.startfile('test.txt')
Startfile will execute the program associated with the file extension.

Related

How to write a python script to open applications in linux mint [duplicate]

This question already has answers here:
How do I execute a program or call a system command?
(65 answers)
Closed 4 years ago.
Hi I would like to write a python script so that if i run that script it should open couple of applications and run some commands in console.Can any one guide me through it. Like example scripts and location to place it etc .
P.S: I use Ubuntu as 17 as my OS.
Thankyou
You can use os.open command to run any script within python script it will run as it would in a command line, for example:
import os
os.open("echo 7")
#this will print 7 on the terminal when you run the script
If in case you want to capture output of a script you run and use it in the script then I suggest you use os.popen, for example:
import os
var=os.popen("cat /path/to/file")
print(var)
#this will print the file content
So in short anything that goes in os.open("here") will run as it would in a command line or terminal of your os.
If you want to run applications you will have to sub subprocess:
import subprocess
subprocess.call("spyder")
Alternatively you can use popen as well to open files:
import os
os.popen("spyder or subl")
os.open will not work. In regards to your specific request use the following code:
import os
os.popen("cd /home/mypc/path ; subl")
You can use the os library to execute system commands
import os
os.system("your command")
you can add your wanted application to the system path to be able to execute it using system commands

Python script to give input to exe [duplicate]

This question already has answers here:
How do I pass a string into subprocess.Popen (using the stdin argument)?
(12 answers)
Closed 6 years ago.
I am able to open cmd.exe using script
import subprocess
subprocess.call("C:\Windows\System32\cmd.exe",shell=True)
But I am unable to send input command to cmd.exe open.
I want to achieve something like below mentioned using script
1) script give input command like python to cmd.exe open
2) After that script give input command like print "hello" to python prompt comes
Why not use Python to create a batch file that prints what you want, then execute that batch file? You could either return immediately or keep the command interpreter open: it depends on the command switches you use to run the batch file.
You could create a file hello.py containing print "hello", and run it through cmd ?
from subprocess import call
call(["python", "hello.py"])

How can I call command line commands from python [duplicate]

This question already has answers here:
How do I execute a program or call a system command?
(65 answers)
Closed 6 years ago.
How can I use command line tools like ls, grep from python.
This is done with subprocess
import subprocess
subprocess.call("ls", shell=True)
You can use the package getopt to use command line arguments with your python code.
There is also a more advanced module called argparse that is easier to code in and provides more help and helpful error messages.
I think if you import os and do os.system(command) that can execute commands.
import os
os.system("your command here")

Running command lines within your Python script

So I have a bunch of aliases and Command Line prompt programs, and my main program works by inputting b into the cmd.exe, followed by some filepath names and what not. How would I run those arguments in my python script? So that it mimics the action i am doing in the cmd?
You should use the subprocess module. In particular, subprocess.call will run command line programs for you.
or you can use
import os
os.system('your_command')
for example:
import os
os.system('notepad')
will launch the notepad with the command line behind.
hope this helps
You can do this using subprocess
For example, this call bellow gets the output of the program and stores it as a string, using .call will help with calling it and for more accurate control use .Popen
subprocess.check_output(["ipconfig"])
Check out Sarge - a wrapper for subprocess which aims to make life easier for anyone who needs to interact with external applications from their Python code. and Plumbum - a small yet feature-rich library for shell script-like programs in Python.

How can I make one python file run another? [duplicate]

This question already has answers here:
What is the best way to call a script from another script? [closed]
(16 answers)
Closed 5 years ago.
How can I make one python file to run another?
For example I have two .py files. I want one file to be run, and then have it run the other .py file.
There are more than a few ways. I'll list them in order of inverted preference (i.e., best first, worst last):
Treat it like a module: import file. This is good because it's secure, fast, and maintainable. Code gets reused as it's supposed to be done. Most Python libraries run using multiple methods stretched over lots of files. Highly recommended. Note that if your file is called file.py, your import should not include the .py extension at the end.
The infamous (and unsafe) exec command: Insecure, hacky, usually the wrong answer. Avoid where possible.
execfile('file.py') in Python 2
exec(open('file.py').read()) in Python 3
Spawn a shell process: os.system('python file.py'). Use when desperate.
Get one python file to run another, using python 2.7.3 and Ubuntu 12.10:
Put this in main.py:
#!/usr/bin/python
import yoursubfile
Put this in yoursubfile.py
#!/usr/bin/python
print("hello")
Run it:
python main.py
It prints:
hello
Thus main.py runs yoursubfile.py
There are 8 ways to answer this question, A more canonical answer is here: How to import other Python files?
I used subprocess.call it's almost same like subprocess.Popen
from subprocess import call
call(["python", "your_file.py"])
you can run your .py file simply with this code:
import os
os.system('python filename.py')
note:
put the file in the same directory of your main python file.
from subprocess import Popen
Popen('python filename.py')
or how-can-i-make-one-python-file-run-another-file
You could use this script:
def run(runfile):
with open(runfile,"r") as rnf:
exec(rnf.read())
Syntax:
run("file.py")
You'd treat one of the files as a python module and make the other one import it (just as you import standard python modules). The latter can then refer to objects (including classes and functions) defined in the imported module. The module can also run whatever initialization code it needs. See http://docs.python.org/tutorial/modules.html
It may be called abc.py from the main script as below:
#!/usr/bin/python
import abc
abc.py may be something like this:
print'abc'

Categories