1. 用 python 调用 python 脚本
- #!/usr/local/bin/python3.7
- import time
- import os
- count = 0
- str = ('python b.py')
- result1 = os.system(str)
- print(result1)
- while True:
- count = count + 1
- if count == 8:
- print('this count is:',count)
- break
- else:
- time.sleep(1)
- print('this count is:',count)
- print('Good Bye')
另外一个 python 脚本 b.py 如下:
- #!/usr/local/bin/python3.7
- print('hello world')
运行结果:
- [[email protected] while]$ python a.py
- hello world
- this count is: 1
- this count is: 2
- this count is: 3
- this count is: 4
- this count is: 5
- this count is: 6
- this count is: 7
- this count is: 8
- Good Bye
2.python 调用 shell 方法 os.system()
- '''
- 遇到问题没人解答? 小编创建了一个 Python 学习交流 QQ 群: 579817333
- 寻找有志同道合的小伙伴, 互帮互助, 群里还有不错的视频学习教程和 PDF 电子书!
- '''
- #!/usr/local/bin/python3.7
- import time
- import os
- count = 0
- n = os.system('sh b.sh')
- while True:
- count = count + 1
- if count == 8:
- print('this count is:',count)
- break
- else:
- time.sleep(1)
- print('this count is:',count)
- print('Good Bye')
shell 脚本如下:
- #!/bin/sh
- echo "hello world"
运行结果:
- [[email protected] while]$ python a.py
- hello world
- this count is: 1
- this count is: 2
- this count is: 3
- this count is: 4
- this count is: 5
- this count is: 6
- this count is: 7
- this count is: 8
- Good Bye
3.python 调用 shell 方法 os.popen()
- '''
- 遇到问题没人解答? 小编创建了一个 Python 学习交流 QQ 群: 579817333
- 寻找有志同道合的小伙伴, 互帮互助, 群里还有不错的视频学习教程和 PDF 电子书!
- '''
- #!/usr/local/bin/python3.7
- import time
- import os
- count = 0
- n = os.system('sh b.sh')
- while True:
- count = count + 1
- if count == 8:
- print('this count is:',count)
- break
- else:
- time.sleep(1)
- print('this count is:',count)
- print('Good Bye')
运行结果:
- [[email protected] while]$ python a.py
- <os._wrap_close object at 0x7f7f89377940>
- ['hello world\n']
- this count is: 1
- this count is: 2
- this count is: 3
- this count is: 4
- this count is: 5
- this count is: 6
- this count is: 7
- this count is: 8
- Good Bye
os.system.popen() 这个方法会打开一个管道, 返回结果是一个连接管道的文件对象, 该文件对象的操作方法同 open(), 可以从该文件对象中读取返回结果. 如果执行成功, 不会返回状态码, 如果执行失败, 则会将错误信息输出到 stdout, 并返回一个空字符串. 这里官方也表示 subprocess 模块已经实现了更为强大的 subprocess.Popen() 方法.
来源: http://www.bubuko.com/infodetail-3367378.html