Python 3.0 kaldırmak bu deneyin edildi:
import tempfile
import commands
import os
commandname = "cat"
f = tempfile.NamedTemporaryFile(delete=False)
f.write("oh hello there")
f.close() # file is not immediately deleted because we
# used delete=False
res = commands.getoutput("%s %s" % (commandname,f.name))
print res
os.unlink(f.name)
Sadece içeriğini yazdırır geçici dosya, ama bu size doğru fikir vermelidir. Dosya, harici işlem görmeden önce kapalı (f.close()
) olduğunu unutmayın. Bu önemli - tüm yazım görevlerinin düzgün bir şekilde yıkanmasını sağlar (ve Windows'da dosyayı kilitlemediğinizi). NamedTemporaryFile
örnekleri, kapatıldıkları zaman genellikle silinir; dolayısıyla delete=False
bit.
İşlem üzerinde daha fazla denetim istiyorsanız, subprocess.Popen
'u deneyebilirsiniz, ancak commands.getoutput
sizin amaçlarınız için yeterli olabilir.
Eğer – balki
@balki some_command geçmeden önce dosyayı temizlemek emin olun ya da bunu tamponsuz yapmak için 'tamponboyu = 0' geçebilir. –