python从命令行获取参数,python执行程序获取终端输出

  python从命令行获取参数,python执行程序获取终端输出

  本文主要介绍一个Python编程获取终端命令行参数的例子。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010实施步骤命令行启动动态绑定端口号代码的实施。

  

目录

  获取终端命令行参数,使用sys.argv实现

  1.导入系统模块

  导入系统

  2.获取命令行参数

  params=sys.argv

  打印(参数)

  打印(params[1])

  获取的是字符串类型,可能需要在使用前进行转换。

  

实现步骤

  1.获取执行python程序的终端命令行参数。

  sys.argv

  2.确定参数的类型,并将端口号设置为整数。

  如果不是sys.argv[1]。isdigit():

  Print(启动命令如下: python 3 XXX . py 9090 )

  返回

  port=int(sys.argv[1])

  3.将端口号参数添加到Web服务器类的初始化方法中,该参数用于绑定端口号。

  def __init__(self,port):

  self.tcp_server_socket.bind((" ",port))

  

命令行启动动态绑定端口号

  导入插座

  导入线程

  导入系统

  #定义一个web服务器类

  类HttpWebServer(对象):

  def __init__(self,port):

  #创建tcp服务器套接字

  TCP _ server _ socket=socket . socket(socket。AF_INET,socket。袜子_流)

  #设置端口号复用,程序出口端口立即释放。

  TCP _ server _ socket . setsockopt(socket。SOL_SOCKET,SOCKET。SO_REUSEADDR,True)

  #绑定端口号

  tcp_server_socket.bind(( ,port))

  #设置监听

  tcp_server_socket.listen(128)

  #保存成功创建的服务器套接字。

  self.tcp _服务器_套接字=tcp _服务器_套接字

  #处理客户的请求

  @静态方法

  定义句柄_客户端_请求(新_套接字):

  #此处执行代码,表示连接建立成功。

  recv _ client _ data=new _ socket . recv(4096)

  if len(接收客户数据)==0:

  打印(“关闭的浏览器”)

  new _套接字. close()

  返回

  #解码二进制数据

  recv _ client _ content=recv _ client _ data . decode(“utf-8”)

  打印(接收客户内容)

  #根据指定的字符串进行除法运算,最大除法数为2。

  request _ list=recv _ client _ content . split( ,maxsplit=2)

  #获取请求的资源路径

  请求路径=请求列表[1]

  打印(请求路径)

  #判断请求的根目录是否为根目录,如果满足条件,则指定返回主页数据。

  if request_path==/:

  request_path=/index.html

  尝试:

  #动态打开指定的文件

  用open(static request_path, rb )作为文件:

  #读取文件数据

  file_data=file.read()

  e:除外

  #请求的资源不存在,返回404数据

  #响应行

  response_line=找不到HTTP/1.1 404 \ r \ n

  #响应标题

  response _ header= server : pws 1.0 \ r \ n

  用open(static/error.html , rb )作为文件:

  file_data=file.read()

  #响应者

  response_body=文件数据

  #拼接响应消息

  response _ data=(response _ line response _ header \ r \ n )。编码( utf-8 )响应_正文

  #发送数据

  新套接字发送(响应数据)

  else:

  #响应行

  response _ line= HTTP/1.1 200 OK \ r \ n

  #响应标题

  response _ header= server : pws 1.0 \ r \ n

  #响应者

  response_body=文件数据

  #拼接响应消息

  response _ data=(response _ line response _ header \ r \ n )。编码( utf-8 )响应_正文

  #发送数据

  新套接字发送(响应数据)

  最后:

  #关闭服务和客户端之间的套接字

  new _套接字. close()

  #启动web服务器开始工作

  定义开始(自身):

  而True:

  #等待接受客户端的连接请求。

  new_socket,IP _ port=self . TCP _ server _ socket . accept()

  #当客户端和服务器建立连接时,创建一个子线程。

  sub_thread=线程。线程(target=self . handle _ client _ request,args=(new_socket,))

  #设置守护程序主线程

  sub_thread.setDaemon(True)

  #启动线程执行相应的任务。

  sub_thread.start()

  #程序输入功能

  定义主():

  打印(sys.argv)

  #判断命令行参数是否等于2,

  if len(sys.argv)!=2:

  Print(执行命令如下: python3 xxx.py 8000 )

  返回

  #确定字符串是否都是数字。

  如果不是sys.argv[1]。isdigit():

  Print(执行命令如下: python3 xxx.py 8000 )

  返回

  #获取终端命令行参数

  port=int(sys.argv[1])

  #创建web服务器对象

  web_server=HttpWebServer(端口)

  #启动web服务器开始工作

  web_server.start()

  if __name__==__main__:

  主()

  以上是Python编程获取终端命令行参数的例子细节。关于Python获取终端命令行参数的更多信息,请关注流行的IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: