这是我创建的一个测试,用于重现我在使用时遇到的问题 临时文件.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()
最佳答案
在 temp.write(data) 之后添加 temp.flush()。
关于python - 为什么 tempfile.NamedTemporaryFile() 会截断我的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9422478/