当前位置:首页 » 编程语言 » python模拟终端

python模拟终端

发布时间: 2023-03-13 18:34:04

A. 初学python。请问Python中所说的终端、互交式解释器、包管理、编辑器都是干什么的

终端就是shell界面,可以向其中输入代码或者从其中得到输出结果
交互式解释器是终端使用的Python解释器,它能对输入的代码进行解释和执行
包管理是pip工具,用来安装、卸载和管理扩展包和库
编辑器是你用来写代码的工具,记事本就是一种编辑器,IDLE是Python自带的编辑器

B. ubuntu|linux下 如何用python 模拟按键

ubuntu下,也就是linux下,通常会用kill -事件编号实现。 你查一下LINUX下的事件就明白了。


kill 进程号 实现上是发了一个信号给指定的进程。 在python里,也可以加载事件处理模块,处理来自其它程序发过来的信号, 当然你可以用KILL工具发信号过来。


ctrl+d也是一个信号,ctrl+c也是一个。具体信号编码我不记得了。不过以前我做多进程管理时就是使用这个方法。 好象信号还可以带参数过来。


你打开python的帮助。看看signal这个模块。我把它的例子拿过来。对你有用不

importsignal,os
defhandler(signum,frame):
print'Signalhandlercalledwithsignal',signum
raiseIOError("Couldn'topendevice!")

#Setthesignalhandleranda5-secondalarm
signal.signal(signal.SIGALRM,handler)
signal.alarm(5)

#Thisopen()mayhangindefinitely
fd=os.open('/dev/ttyS0',os.O_RDWR)

signal.alarm(0)#Disablethealarm

下面是我找到的一些资料。也许有用。


信号的概念

信号(signal)--进程之间通讯的方式,是一种软件中断。一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号。

几个常用信号:

SIGINT终止进程中断进程(control+c)

SIGTERM终止进程软件终止信号

SIGKILL终止进程杀死进程

SIGALRM闹钟信号

进程结束信号SIGTERM和SIGKILL的区别

SIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。在某些情况下,假如进程正在进行作业而且不能中断,那么进程可以忽略这个SIGTERM信号。

对于SIGKILL信号,进程是不能忽略的。这是一个“我不管您在做什么,立刻停止”的信号。假如您发送SIGKILL信号给进程,Linux就将进程停止在那里。

发送信号一般有两种原因:

1(被动式)内核检测到一个系统事件.例如子进程退出会像父进程发送SIGCHLD信号.键盘按下control+c会发送SIGINT信号

2(主动式)通过系统调用kill来向指定进程发送信号

linux操作系统提供的信号

[100003@oss235 myppt]$ kill -l

1) SIGHUP2) SIGINT3) SIGQUIT4) SIGILL

5) SIGTRAP6) SIGABRT7) SIGBUS8) SIGFPE

9) SIGKILL10) SIGUSR111) SIGSEGV12) SIGUSR2

13) SIGPIPE14) SIGALRM15) SIGTERM16) SIGSTKFLT

17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP

21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU

25) SIGXFSZ26) SIGVTALRM27) SIGPROF28) SIGWINCH

29) SIGIO30) SIGPWR31) SIGSYS34) SIGRTMIN

35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+338) SIGRTMIN+4

39) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8

43) SIGRTMIN+944) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12

47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14

51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10

55) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-758) SIGRTMAX-6

59) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2

63) SIGRTMAX-164) SIGRTMAX

Python提供的信号

Python 2.4.3 (#1, Jun 11 2009, 14:09:58)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2

Type "help", "right", "credits" or "license" for more information.

>>> import signal

>>> dir(signal)

['NSIG', 'SIGABRT', 'SIGALRM', 'SIGBUS', 'SIGCHLD', 'SIGCLD',
'SIGCONT', 'SIGFPE', 'SIGHUP', 'SIGILL', 'SIGINT', 'SIGIO', 'SIGIOT',
'SIGKILL', 'SIGPIPE', 'SIGPOLL', 'SIGPROF', 'SIGPWR', 'SIGQUIT',
'SIGRTMAX', 'SIGRTMIN', 'SIGSEGV', 'SIGSTOP', 'SIGSYS', 'SIGTERM',
'SIGTRAP', 'SIGTSTP', 'SIGTTIN', 'SIGTTOU', 'SIGURG', 'SIGUSR1',
'SIGUSR2', 'SIGVTALRM', 'SIGWINCH', 'SIGXCPU', 'SIGXFSZ', 'SIG_DFL',
'SIG_IGN', '__doc__', '__name__', 'alarm', 'default_int_handler',
'getsignal', 'pause', 'signal']

操作系统规定了进程收到信号以后的默认行为

但是,我们可以通过绑定信号处理函数来修改进程收到信号以后的行为

有两个信号是不可更改的SIGTOP和SIGKILL

绑定信号处理函数

import os
import signal
from time import sleep

def onsignal_term(a,b):
print '收到SIGTERM信号'

#这里是绑定信号处理函数,将SIGTERM绑定在函数onsignal_term上面
signal.signal(signal.SIGTERM,onsignal_term)

def onsignal_usr1(a,b):
print '收到SIGUSR1信号'
#这里是绑定信号处理函数,将SIGUSR1绑定在函数onsignal_term上面
signal.signal(signal.SIGUSR1,onsignal_usr1)

while 1:
print '我的进程id是',os.getpid()
sleep(10)


运行该程序。然后通过另外一个进程来发送信号。

发送信号

发送信号的代码如下:

import os
import signal

#发送信号,16175是前面那个绑定信号处理函数的pid,需要自行修改
os.kill(16175,signal.SIGTERM)
#发送信号,16175是前面那个绑定信号处理函数的pid,需要自行修改
os.kill(16175,signal.SIGUSR1)

C. python里什么是终端

什么是终端

终端是mac电脑上的一个应用程序,可以在终端里执行命令,在windows电脑上,也有一个类似的程序,你大概听说过,叫cmd,大部分学习者使用的是windows,因此我们先说cmd。

打开cmd

win+r 打开运行,在输入框内输入cmd点击回车即可进入cmd命令窗口

进入以后,大概是类似这样的画面,每个人电脑里出现的结果会不一样,如果你在这里输入python命令并回车,就会进入python交互式解释器。

想要通过python命令运行python脚本,也需要在cmd命令窗口里进行。

打开mac终端

在应用程序里找到 实用工具 ,在实用工具中可以找到终端

打开后,为了以后方便,你可以选择将其保留在Dock上

同理,在这里输入python,也会进入python交互式解释器,mac默认已经安装好了python2.7,所以, 你输入python,进入的python2.7 的交互式解释器,我在mac上又安装了python3.6, 让python3指向了python3.6

热点内容
动态规划01背包算法 发布:2024-11-05 22:17:40 浏览:849
nasm编译器如何安装 发布:2024-11-05 22:01:13 浏览:180
登录密码在微信的哪里 发布:2024-11-05 22:00:29 浏览:739
c防止反编译工具 发布:2024-11-05 21:56:14 浏览:247
安卓虚拟机怎么用 发布:2024-11-05 21:52:48 浏览:344
php时间搜索 发布:2024-11-05 20:58:36 浏览:478
燕山大学编译原理期末考试题 发布:2024-11-05 20:13:54 浏览:527
华为电脑出现临时服务器 发布:2024-11-05 20:05:08 浏览:408
斗战神免费挖矿脚本 发布:2024-11-05 19:53:25 浏览:665
网吧服务器分别是什么 发布:2024-11-05 19:45:32 浏览:392