Python 将xml转换为csv后关闭文件
这是我的小脚本(这是xmltocsv模块的基本用法),用于将xml文件(7Mo)转换为csv 我有一个小问题,因为这个转换器xml2csv使用,直到我结束脚本(关闭我的shell)后才关闭文件,这导致了一些问题,因为我使用新的csv(在同一个脚本中)进行一些处理,但由于它没有完全写入磁盘,一些数据被遗忘 当我手动结束脚本时,我在磁盘上看到文件大小改变了1ko。你能告诉我怎样才能把文件完整地写在磁盘上吗。。。例如,通过转换器刷新所有数据进程Python 将xml转换为csv后关闭文件,python,xml,csv,Python,Xml,Csv,这是我的小脚本(这是xmltocsv模块的基本用法),用于将xml文件(7Mo)转换为csv 我有一个小问题,因为这个转换器xml2csv使用,直到我结束脚本(关闭我的shell)后才关闭文件,这导致了一些问题,因为我使用新的csv(在同一个脚本中)进行一些处理,但由于它没有完全写入磁盘,一些数据被遗忘 当我手动结束脚本时,我在磁盘上看到文件大小改变了1ko。你能告诉我怎样才能把文件完整地写在磁盘上吗。。。例如,通过转换器刷新所有数据进程 #!/usr/bin/env python # -*-
#!/usr/bin/env python
# -*- coding: UTF8 -*-
import csv
from xmlutils.xml2csv import xml2csv
import datetime
import time
#Declaration du jour
jour = datetime.date.today()
#Conversion du fichier xml en CSV
inputFile = "../source_xml/source-2014-06-03.xml"
output = "../source_csv/drop"+str(jour)+".csv"
converter = xml2csv(inputFile, output , encoding="utf-8")
converter.convert(tag="product",delimiter="|")
with open("../source_csv/drop"+str(jour)+".csv", 'r+') as output:
read_data = output.read()
output.close
我试图用“with open”打开它,然后关闭它,但它也不起作用
谢谢你的帮助。两点:
close
方法时忘记了()
with
关键字打开
文件,则无需在with
块之后手动关闭它。Python将确保在不再需要资源时关闭该资源,即使发生异常如果您使用的是来自knadh xmlutils的xmd2csv,那么它似乎永远不会关闭输出csv文件 因此,您应该首先在xml2csv的python代码中验证输出文件是以
self.output
的形式打开的,而不是像我知道的版本那样关闭的。如果是这种情况,您应该按照converter.convert(…)
行进行操作
converter.output.close()
with块为您关闭文件是的,谢谢,我只是忘了从脚本中删除它。但是即使你这样做了,它也不会在你的磁盘上写入完整的文件,总是1ko丢失嗨,谢谢timgeb,我忘了从脚本中删除close方法。实际上,即使你使用关键字也不起作用,csv上总是缺少一些数据。由于serge,转换后的xml大约有70万份!我离你不远,我在你的答案转换器之前做了一个测试。close()但我对对象编程还不够好:)