首先使用html表單上傳檔案。我不想將該檔案存盤在專案目錄中。不保存如何讀取所有檔案內容?
uj5u.com熱心網友回復:
如果您只想從檔案中讀取資料,那么只需使用.read()
uploaded_file = request.files.get('uploaded_file')
data = uploaded_file.read()
print(data)
如果您想將它與需要檔案名的函式一起使用,那么通常它也可以與file-like物件一起使用,您可以直接使用它
IE。Pillo.Image
from PIL import Image
uploaded_file = request.files.get('uploaded_file')
img = Image.open(uploaded_file)
img.save('new_name.jpg')
IE。pandas.DataFrame
import pandas as pd
uploaded_file = request.files.get('uploaded_file')
df = pd.read_csv(uploaded_file)
您還可以使用在記憶體io.BytesIO()中創建物件。file-like
from PIL import Image
import io
uploaded_file = request.files.get('uploaded_file')
data = uploaded_file.read()
file_object = io.BytesIO(data)
#file_object.seek(0)
img = Image.open(file_object)
img.save('new_name.jpg')
import pandas as pd
import io
uploaded_file = request.files.get('uploaded_file')
data = uploaded_file.read()
file_object = io.BytesIO(data)
#file_object.seek(0)
df = pd.read_csv(file_object)
但是,當您想要保存/生成資料而不寫入磁盤并稍后將其發送回瀏覽器時,這會更有用。
uploaded_file = request.files.get('uploaded_file')
img = Image.open(uploaded_file)
# generate smaller version
img.thumbnail((200,200))
# write in file-like object as JPG
file_object = io.BytesIO()
img.save(file_object, 'JPEG')
# get data from file
data = file_object.getvalue() # get data directly
# OR
#file_object.seek(0) # move to the beginning of file after previous writing/reading
#data = file_object.read() # read like from normal file
# send to browser as HTML
data = base64.b64encode(data).decode()
html = f'<img src="data:image/jpg;base64, {data}">'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/491907.html
上一篇:我如何修改網址(Flask)
