參考連接配接
https://www.cnblogs.com/dream4567/p/10819472.html
Windows作業系統
單獨運作這些沒問題,但是當我調用的時候,會出現問題,總結那塊闡述 ~
1、當有 delete=False 會存在C槽,C:\Users\LIUWENYU\AppData\Local\Temp\tmppzweoxnj
2、當沒有 delete=False,程式運作完會自動删除,不儲存
from tempfile import NamedTemporaryFile
# with NamedTemporaryFile('w+t',delete=False) as f:
with NamedTemporaryFile('w+t') as f:
print('filename:',f.name)
# 結果:
# filename: C:\Users\LIUWENYU\AppData\Local\Temp\tmppzweoxnj
官網:https://docs.python.org/2/library/tempfile.html
Linux系統:
咋樣都能用 ~,是以沒問題
總結:
系統 | with NamedTemporaryFile(‘w+b’,delete=False) as tmp: | with NamedTemporaryFile(‘w+b’) as tmp: |
---|---|---|
Windows | 正常運作,運作結束保留臨時檔案 | 不能運作,不保留臨時檔案 |
Linux | 正常運作,運作結束保留臨時檔案 | 正常運作,運作結束不保留臨時檔案 |
注意: 上述Windows系統,複制代碼,看C槽,可以試驗一下;當我封裝類,調用的時候會報錯,下面小記闡述
個人小記:
windows系統:
首先,我是通過代碼,生成一個excel,然後通過url,資料流方式,下載下傳;
(實作這個目的)
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn1EMVRlT6dmeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxMDO5UDOxMTMwIDOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1、當我使用 with NamedTemporaryFile(‘w+b’) as tmp:
2、網頁直接報錯!!!
3、代碼錯誤提示!!!
Permission denied: 'C:\Users\LIUWENYU\AppData\Local\Temp\tmpr_vpfba3’
原因: 大概意思是,當這個臨時檔案處于打開狀态,在unix平台,該名字可以用于再次打開臨時檔案,但是在windows不能。是以,如果要在windows打開該臨時檔案,需要将檔案關閉,然後再打開,操作完檔案後,再調用os.remove删除臨時檔案。
參考文章:https://blog.csdn.net/leo881205/article/details/79274836
4、換成: with NamedTemporaryFile(‘w+b’,delete=False) as tmp:
雖然可以下載下傳,但是保留了臨時檔案