在Python中使用os.path.isfile()和os.path.isdir()列出目录的内容

问题描述 投票:0回答:1

我需要在Python中创建一个Web服务器来列出目录(文件和目录)的内容,但事实证明只列出了文件,在我正在进行的测试中我列出了“/ etc”,但问题是它没有显示 /etc 中存在的目录,只是显示几个 /etc,然后它正确列出了文件,有人可以帮助我吗??

import web
import os

urls = (
'/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:
    def GET(self, path):

        path = '/etc/'+path
        lista = '<html> <body>'
        caminhos = [os.path.join(path, nome) for nome in os.listdir(path)]
        for nome in caminhos:
            lista = lista+path+'<br>'
        arquivos = [arq for arq in caminhos if os.path.isfile(arq)]
           for arq in arquivos:
               lista = lista+arq+ '<br>'
           lista = lista+'</body> </html>'
           return lista


if __name__ == "__main__":
    app.run()
python python-3.x web.py os.path
1个回答
0
投票

试试这个..

import web
import os

urls = ('/(.*)', 'hello')
app = web.application(urls, globals())

class hello:
    def GET(self, path):
        path = '/etc/' + path
        lista = '<html><body>'
        for nome in os.listdir(path):
            full_path = os.path.join(path, nome)
            if os.path.isdir(full_path):
                lista += f'<b>{full_path}</b><br>'
            else:
                lista += f'{full_path}<br>'
        lista += '</body></html>'
        return lista

if __name__ == "__main__":
    app.run()

此代码正确列出指定目录(本例中为“/etc”)内的文件和目录,并将目录格式设置为 HTML 中的粗体文本。

© www.soinside.com 2019 - 2024. All rights reserved.