python tempfile模块用不了_Python tempfile:坏了还是我做错了?
對(duì)于一個(gè)小python腳本,我希望使用tempfile模塊的臨時(shí)文件。不知何故,它沒有給出預(yù)期的行為,我不知道我做錯(cuò)了什么,或者這是一個(gè)bug:Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tempfile
>>> tmp = tempfile.TemporaryFile()
>>> tmp.read()
''
>>> tmp.write('test')
>>> tmp.read()
'P\xf6D\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ [ommitted]'
或者,我只嘗試使用文本模式,但行為仍然很奇怪:
^{pr2}$
感謝任何幫助!在
其他信息:在Windows7Enterprisex64計(jì)算機(jī)上運(yùn)行的當(dāng)前PythonXY發(fā)行版中的Python2.7.2(32位)。在一個(gè)測(cè)試運(yùn)行中,python在D:\temp\myusername下的臨時(shí)目錄中創(chuàng)建了臨時(shí)文件名“tmpvyocxj”,其他幾個(gè)python進(jìn)程正在運(yùn)行。輸入的命令,我沒有嘗試在腳本中復(fù)制它。在沒有其他python進(jìn)程運(yùn)行的情況下,行為沒有改變。在
更新:
這種行為不僅限于tempfile模塊,也適用于普通的文件.read()和文件.寫入()操作。根據(jù)CPython的說法,這兩個(gè)函數(shù)都只調(diào)用底層libc fread()例程。在C標(biāo)準(zhǔn)中,沒有seek或flush中間的read-after-write的確切行為是未定義的,即每個(gè)實(shí)現(xiàn)都可能導(dǎo)致不同的結(jié)果。在
總結(jié)
以上是生活随笔為你收集整理的python tempfile模块用不了_Python tempfile:坏了还是我做错了?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米快传怎么用 小米快传图文使用教程
- 下一篇: Win7七大"奇妙"功能