大家在工作中,有沒有遇到這個問題,那就是在使用python的時候,無法實現不寫硬盤上傳文件,這樣會導致工作效率大大降低。那么,怎么才能夠實現python不讀寫硬盤上傳文件呢?下面給大家列舉了幾種實例,希望能夠對大家帶來幫助,祝大家在工作中,早日實現財富自由。
引言
假如說你寫了一個api,并且能夠接受client上傳的文件,然后在上傳到oss,那么這個時候,你會怎么做?先寫硬盤,然后在上傳到oss?太笨了!
你寫了一個截圖服務,截到的圖要上傳到oss,你會怎么做?先寫硬盤,在上傳到oss?太笨了!
那么,這篇文章,就教你怎么去實現上述功能!
一、文本類型
使用io.StringIO
io.StringIO
1、import io
2、from loguru import logger
3、file_like_obj=io.StringIO("hahaha")
4、logger.debug(file_like_obj)
5、logger.debug(type(file_like_obj))
6、logger.debug(getattr(file_like_obj,'read'))
7、logger.debug(file_like_obj.read())
輸出結果如下:
2022-07-11 21:23:51.206|DEBUG|__main__::8-<_io.StringIO object at 0x100323eb0>
2022-07-11 21:23:51.206|DEBUG|__main__::9-
2022-07-11 21:23:51.206|DEBUG|__main__::10-
2022-07-11 21:23:51.206|DEBUG|__main__::11-hahaha
再看一個熟悉的:
1、import io
2、from loguru import logger
3、file_like_obj=io.StringIO("hahaha")
4、with file_like_obj as f:
5logger.debug(f.read())
輸出結果如下:
2022-07-11 21:35:04.620|DEBUG|__main__::9-hahaha
二、二進制類型
使用io.BytesIO
使用requests把字符串按照文件上傳
下面的代碼是標準的上傳文件的代碼:
1、import requests
2、import io
3、response=requests.post('http://localhost:5000/',files={
'file':open('縱觀人類文明史.txt','r',encoding='utf-8')
})
4、print(response.text)
但是我想把open('縱觀人類文明史.txt','r',encoding='utf-8')替換為字符串。為此我想到的辦法是把字符串先寫到硬盤上,在按照上面的代碼上傳,可是這太低效率(硬盤太低效率),平白無故多了兩次硬盤讀寫操作,我想直接把內存中的字符串按照文件上傳有什么辦法嗎?
參考文檔
https://docs.python.org/zh-cn/3/library/io.html#io.StringIO
以上就是Python實現不寫硬盤上傳文件的詳細內容,更多關于Python不寫硬盤上傳文件的資料,請繼續關注本小編哦
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127484.html
摘要:文件的基本操作編碼不同編碼之間的二進制是不能互相識別的。返回值有幾種情況分別是沒有返回值返回一個值返回多個值。函數定義計算的長度函數調用因為沒有返回值,此時的為只寫,后面不寫其他內容,也會返回,但是遇到會終止整個函數。 文件的基本操作 編碼 1.不同編碼之間的二進制是不能互相識別的。2.對于文件的存儲,及傳輸 不能是unicode的編碼。 bytes:內部編碼格式(非unicode) ...
摘要:代碼審計一文件上傳概述在網站的運營過程中,不可避免地要對網站的某些頁面或內容進行更新,這時便需要使用到網站上的文件上傳功能。 PHP 代碼審計:(一)文件上傳 0x00 概述 在網站的運營過程中,不可避免地要對網站的某些頁面或內容進行更新,這時便需要使用到網站上的文件上傳功能。如果不對被上傳文件進行限制,或限制被繞過,該功能便有可能會被利用于上傳可執行文件、腳本到服務器上,今兒進一步導...
?前言 在Python寫代碼做項目時,我們往往需要對多個文件進行操作,在現在的源代碼文件中怎么導入其他文件?怎么對其他文件進行操作?這都是經常要面臨的問題,尤其是爬蟲,爬到的數據放在哪里?用到的時候怎么調出來? 這就涉及到了Python的文件操作知識了,我們不可能永遠都只會在一個源文件上做所有的操作,這也是必須掌握的一個知識板塊。 與此同時,我的Python新手入門教程系列文章也已經快更新完了,歡...
摘要:負責從拉取數據源,把數據源分詞,建立索引搜索模塊工作流程如下模塊從中拉取數據模塊用經過中文分詞后的數據建立索引客戶端向模塊發起搜索請求模塊查找索引中的數據模塊得到索引中符合要求的數據的等數據把數據返回給客戶端 (整理自《App后臺開發運維和架構實踐》 作者:曾健生) 一、從業務邏輯中提煉API接口 此過程可分為六個階段: 業務邏輯思維導圖 功能——業務邏輯思維導圖 基本功能模塊關系 ...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02