這是我創建的一個測試,用於重新創建我在使用 tempfile.NamedTemporaryFile()時遇到的問題。問題是,當我使用tempfile時,我的CSV中的 數據被截斷了文件的末尾。爲什麼tempfile.NamedTemporaryFile()會截斷我的數據?
當您運行此測試腳本時,temp2.csv將被截斷並且temp1.csv 將與原始CSV的大小相同。
我正在使用Python 2.7.1。
#!/usr/bin/env python
import tempfile
import shutil
def main():
f = open('RECS05alldata.csv')
data = f.read()
f.close()
f = open('temp1.csv', 'w+b')
f.write(data)
f.close()
temp = tempfile.NamedTemporaryFile()
temp.write(data)
shutil.copy(temp.name, 'temp2.csv')
temp.close()
if __name__ == '__main__':
main()
工作,但似乎有點違反直覺。看起來temp.flush()應該放在temp.write(data)之前。這是我之前嘗試過的,它不起作用。我希望我能更好地理解爲什麼它在write()之後工作。 – Brent 2012-02-25 00:19:56