为什么tempfile.NamedTemporaryFile()会截断我的数据?

Bre*_*nor 4 python

这是我创建的一个测试,用于重新创建我在使用tempfile.NamedTemporaryFile()时遇到的问题.问题是当我使用tempfile时,我的CSV中的数据会从文件的末尾被截断.

运行此测试脚本时,temp2.​​csv将被截断,temp1.csv将与原始CSV的大小相同.

我正在使用Python 2.7.1.

您可以从http://explore.data.gov/Energy-and-Utilities/Residential-Energy-Consumption-Survey-RECS-Files-A/eypy-jxs2下载示例CSV.

#!/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()
Run Code Online (Sandbox Code Playgroud)

011*_*110 9

在temp.write(data)之后添加temp.flush().