向本机请求设置好 的网页出错 正则表达式抄的书上 一直报错

from multiprocessing import Process
import re
import socket

HTML_ROOT_DIR='./test' # 设置 需要网页打开的网页 存放的 根目录
class HTTPserver(object):
def init(self): #初始化 方法
self.server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建socket 对象

def  start(self):
    self.server_socket.listen(128)   #表示设置最多的连接数
    print('服务器等待客户端连接a')
    while True:
        client_socket,client_address=self.server_socket.accept()
        print("[%s, %s] 客户链接上了" %client_address)
        handle_client_process=Process(target=self.handle_client,args=(client_socket,))
        handle_client_process.start()      #开始一个进程
        client_socket.close()    #关闭客户端的socket


def handle_client(self,client_socket):     # 处理客户端请求 ,接受客户端的数据
    request_date=client_socket.recv(1024)     #获取客户端请求数据
    print('从客户端接受的数据为:' ,request_date)
    request_lines =request_date.splitlines()      # 将接受到的数据按照行划分
    for line in request_lines:
        print(line)                    #拆分后  打印出每行拆分的内容
    request_start_line=request_lines[0]     #解析请求的报文
    print('*'*10)    #区分开   请求的第一行报文
    print(request_start_line.decode ('utf-8'))   #把收到的第一行报文  解码成我们能看懂的字符串
    file_name=re.match(r"\w+ +(/[^]*)",request_start_line.decode ('utf-8')).group(1)   #使用正则表达式提取请求的报文 并分组
    if '/'==file_name:

        file_name='./index.html'   #如果提取到的文件名是根目录,把文件名赋值给filename
    try:
        file=open (HTML_ROOT_DIR  +file_name, 'rb')

    except IOError:
        response_start_line='HTTP/1.1   404 not found  \r\n'
        response_headers='server:  My server  \r\n'
        response_body='The file is not found'

    else:
        file_date=file.read()
        file.close()
        response_start_line='HTTP/1.1  200  OK  \r\n'
        response_headers='server :   My server  \r\n'
        response_body=file_date.decode('utf-8')

    response=response_start_line+response_headers+'\r\n'+ response_body    #拼接返回的数据
    print('返回的完整数据 是:',response)
    client_socket.send(bytes(response,'utf-8'))
    client_socket.close()


def bind(self,port):
    self.server_socket.bind(("",port))

def main(): # 主函数
http_server=HTTPserver() #实例化 http类
http_server.bind(9000) #绑定端口号
http_server.start() #调用start

if name=='main':
main()

[^这里少了个空格],不过有现成的flask web框架你干嘛不用呢?有帮助麻烦点个采纳【本回答右上角】,谢谢~~

file_name=re.match(r"\w+ +(/[^ ]*)",request_start_line.decode('utf-8')).group(1)#[^这里少了个空格]

img