FileNotFoundError: [Errno 2] No such file or directory: 'list.html'

作者尝试使用Python的socket模块创建一个本地动态网站,并利用Django框架进行学习。在VSCode中运行代码时遇到FileNotFoundError,但在IDLE中运行正常。错误源于VSCode与文件路径处理的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#打算学习django框架,然后利用python的socket做一个简易的本地动态网站,代码如下。注:代码可用,只需要创造相应的html文件。

import socket
import time
def f1():
    f=open('index.html','rb')
    data=f.read()
    f.close()
    return data
def f2():
    f=open('list.html','r',encoding='utf-8')
    data=f.read()
    f.close()
    ctime=time.time()
    data=data.replace('ID',str(ctime))
    return bytes(data,encoding='utf-8')
routers=[#创建路由
    ('/xxxx',f1),
    ('/oooo',f2),
    ]
def run():
    sock=socket.socket()
    sock.bind(('127.0.0.1',8080))
    sock.listen(5)
    print(sock)
    while True:
        conn,addr=sock.accept()#夯筑
        data=conn.recv(8096)
        data=str(data,encoding="utf-8")
        print(data)
        url=data.split()[1]
        for item in routers:
            if item[0]==url:
                func_name=item[1]
                break
        if func_name:
            response=func_name()
        else:
            response=b"404"
        conn.send(response)
        conn.close()
if __name__=="__main__":
    run()

运行的过程中报出了非常奇怪的错误,

Traceback (most recent call last):
  File "f:/Python/Django/Django学习/2020.2.15/动  网站/框架代码.py", line 44, in <module>
态网站/框架代码.py", line 44, in <module>
    run()                                         网站/框架代码.py", line 36, in run
  File "f:/Python/Django/Django学习/2020.2.15/动
态网站/框架代码.py", line 36, in run              网站/框架代码.py", line 10, in f2
    response=func_name()
  File "f:/Python/Django/Django学习/2020.2.15/动 ctory: 'list.html'
态网站/框架代码.py", line 10, in f2
    f=open('list.html','r',encoding='utf-8')
FileNotFoundError: [Errno 2] No such file or directory: 'list.html'

错误显示找不到文件list.html,但是Python文件与html文件确实处于同一文件夹下。vscode中显示的文件夹截图
然后我用了python自带的Edit with IDLE试了试,发现运行正常,在ie浏览器中输入相应url可以正常显示;而使用vscode总的“在终端运行python”就会产生错误。所以上述结果只能说明vscode本身存在问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值