这是我的小脚本(基本上只是模块xmltocsv的基本用法)代码,以便将xml文件转换为(7Mo)到csv。
我有一个小问题,因为这个转换器xml2csv使用,直到我结束脚本(关闭我的shell)才关闭文件,因为我使用新的csv(在同一个脚本中)导致我出现问题做一些过程,但由于它没有完全写在磁盘上,一些数据被遗忘。
当我手动结束脚本时,我在磁盘上看到文件大小改变了1ko。你能告诉我怎样才能完全把文件写在磁盘上......就像刷新转换器的所有数据一样。
#!/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
我尝试用“打开”打开它并关闭它但它也不起作用。
感谢您的帮助。
答案 0 :(得分:1)
两点:
您在调用()
方法时忘记了close
。
如果您使用open
关键字with
文件,则无需在with
数据块后手动关闭它。 Python将确保资源在不再需要时关闭,即使发生异常也是如此。
答案 1 :(得分:1)
如果您正在使用knadh-xmlutils中的xmd2csv,那么它似乎永远不会关闭输出csv文件。
因此,您应首先在xml2csv的python代码中验证输出文件是以self.output
打开,而不是像我所知的那样关闭。如果是这种情况,您应该按照converter.convert(...)
行
converter.output.close()