2015-09-10 30 views
3

我正在處理一個庫,它希望我以文件名的形式傳遞它的數據。然後它會打開該文件並讀取數據。我有一個字符串中的數據,我不想將它寫入一個文件(因爲我不想在之後刪除它)。讓字符串充當文件

有沒有一種方法可以將字符串轉換爲流並生成文件名,這將允許我的庫打開我的流並訪問我的字符串的內容?

+1

爲什麼不使用內建到python的tempfile模塊? –

+0

如果您使用的是Linux,您可能可以使用命名管道。 – jojonas

+1

除非我錯過了你的觀點,那麼tempfile.NamedTemporaryFile正是你想要的 –

回答

3
import tempfile 

fh = tempfile.NamedTemporaryFile() # this creates an actual file in the temp directory 
fh.write(my_string) 
print fh.name 
call_other_thing(fh.name) 
fh.close() # file is now deleted 
+0

呃,或者只是在傳遞名字之前使用'fh.flush()'...但是是的 –

+0

可能會說機會沖洗,但是有沒有保證使用刷新數據將被寫入? –

+1

我認爲是這樣的......每當我有緩衝區問題時,它的工作:P(不會挖掘證明雖然...但我不認爲它會返回,直到緩衝區被刷新) –