Run a command within python
Project description
run-cmd
Run a command within python
Install it
pip install python-run-cmd
# pip install git+https://github.com/ffreemt/run-cmd
# poetry add git+https://github.com/ffreemt/run-cmd
# git clone https://github.com/ffreemt/run-cmd && cd run-cmd
Use it
run_cmd
from python_run_cmd import run_cmd
ret = run_cmd("ls -l")
if ret.returncode:
print("Failed")
else:
print("OK")
An exception will be raised when errors occur. This may come handy sometimes.
from python_run_cmd import run_cmd
try:
ret = run_cmd("lsss -l")
except Exception as exc:
print(exc)
# 'lsss' is not recognized as an internal
# or external command, operable program or batch file.
Set raise_stderr=False
to ignore errors
from python_run_cmd import run_cmd
ret = run_cmd("lsss -l", raise_stderr=False)
if ret.returncode:
print("Failed")
else:
print("OK")
run_cmd_async
Simultaneously run several commands:
import asyncio
import webbrowser
from python_run_cmd import run_cmd_async
async def browse_8000():
webbrowser.open("http://127.0.0.1:8000")
async def main():
return await asyncio.gather(
run_cmd_async("ping www.baidu.com"),
browse_8000(),
run_cmd_async("python -m http.server"),
)
asyncio.run(main())
For Python up to 3.10, it can be simplified (it won't work with Python 3.11):
import asyncio
import webbrowser
from python_run_cmd import run_cmd_async
async def browse_8000():
webbrowser.open("http://127.0.0.1:8000")
asyncio.run(
asyncio.wait(
[
run_cmd_async("ping www.baidu.com"),
browse_8000(),
run_cmd_async("python -m http.server"),
]
)
)
Note there is no auxiliary async main
function.
run_cmd_stream
Some commands take a long time to complete. If we want to see live stream output (one line at a time), run_cmd_stream
can be used.
from python_run_cmd import run_cmd_stream
run_cmd_stream("ping -n 100 baidu.com")
We won't have to wait until all 100 pings to complete to see the output.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python_run_cmd-0.1.1.tar.gz
(4.8 kB
view hashes)
Built Distribution
Close
Hashes for python_run_cmd-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d03af62cb95eb492d827bb1cacaa0a22a17e70f5ad6d9599b1951b67df2e1d4a |
|
MD5 | 22cbe51f3be0723bd2b1bdeb94eb977e |
|
BLAKE2b-256 | 85126b6f303a860cb2fcf6990d365c7c25ac74fc1915610e5a6b23846c8eb74a |