第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在沒(méi)有Web服務(wù)器的情況下從本地主機(jī)獲取文件

在沒(méi)有Web服務(wù)器的情況下從本地主機(jī)獲取文件

SMILET 2023-07-11 16:22:06
我想在沒(méi)有 Web 服務(wù)器的情況下從本地主機(jī)異步獲取文件。似乎可以使用 file:// 方案。以下代碼示例取自文檔,但顯然它不起作用:import aiohttpimport asyncioasync def fetch(session, url):    async with session.get(url) as response:        return await response.text()async def main():    async with aiohttp.ClientSession() as session:        html = await fetch(session, 'file://localhost/Users/user/test.txt')        print(html)if __name__ == '__main__':    loop = asyncio.get_event_loop()    loop.run_until_complete(main())如何讓它工作?我看到的一種方法是使用 run_in_executor 在單獨(dú)的線程池中使用“curl file://path”,但我認(rèn)為應(yīng)該有一種方法可以修復(fù)代碼
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果需要獲取本地文件的內(nèi)容,可以使用普通的 Python 內(nèi)置來(lái)完成,例如:


with open('Users/user/test.txt') as rd:

    html = rd.read()

如果文件不是很大,并且存儲(chǔ)在本地文件系統(tǒng)上,您甚至不需要使其異步,因?yàn)樽x取它的速度足夠快,不會(huì)干擾事件循環(huán)。如果文件很大或由于其他原因讀取速度可能很慢,則應(yīng)通讀它以防止它阻止其他 asyncio 代碼。例如(未經(jīng)測(cè)試):run_in_executor


def read_file_sync(file_name):

    with open('Users/user/test.txt') as rd:

        return rd.read()


async def read_file(file_name):

    loop = asyncio.get_event_loop()

    html = await loop.run_in_executor(None, read_file_sync, file_name)

    return html


查看完整回答
反對(duì) 回復(fù) 2023-07-11
  • 1 回答
  • 0 關(guān)注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)