os.system () 此模块提供对操作系统功能的访问
1、通过 os.system () 直接调用系统功能
import os | |
os.system("calc") # 调用操作系统的计算器 | |
os.system("cmd") # 调用操作系统的 cmd | |
os.system('mstsc') # 调用远程桌面连接 |
2、通过 cmd 命令调用系统功能
1、调用操作系统的cmd面板 | |
os.system("cmd") | |
2、在cmd面板输入相关功能命令 | |
3、常用命令如下,更多可百度... | |
calc # 调用操作系统的计算器 | |
mstsc # 调用远程桌面连接 | |
mspaint # 调用画图功能 | |
start 音乐的路径 # 调用音乐功能 |
叙述:
os.system 方法是 os 模块最基础的方法,其它的方法一般在该方法基础上封装完成。
os 的 system 原理
system 函数可以将字符串转化成命令在服务器上运行;其原理是每一条 system 函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程;
上述原理会导致当需要执行多条命令行的时候可能得不到预期的结果;
import os | |
os.system('cd /usr/local') | |
os.mkdir('aaa.txt) |
上述程序运行后会发现 txt 文件并没有创建在 /usr/local 文件夹下,而是在当前的目录下;
使用 system 执行多条命令
为了保证 system 执行多条命令可以成功,多条命令需要在同一个子进程中运行;
import os | |
os.system('cd /usr/local && mkdir aaa.txt') | |
# 或者 | |
os.system('cd /usr/local ; mkdir aaa.txt') |
基于上述使用的扩展使用:
模拟环境: 在服务器上启动守护进程,直接启动也会有异常退出,毕竟守护进程也是有重启次数的, 这个时候就可以, 单独创建一个启动文件,用启动文件启动 程序。 再用守护进程启动这个 启动文件,做个异常处理,可以保证稳定启动
import os,time | |
def start(): | |
try | |
os.system('cd /usr/local && scrapy crawl yourSpiderName') | |
# 或者 | |
os.system('cd /usr/local ; scrapy crawl yourSpiderName') | |
except Exception as e: | |
print('MyErrorAtStart: %s' % e) | |
time.sleep(10) | |
start() | |
if __name__ == '__main__': | |
start() |