Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入到csv文件时多次打印的标题信息_Python_Python 2.7 - Fatal编程技术网

Python 导入到csv文件时多次打印的标题信息

Python 导入到csv文件时多次打印的标题信息,python,python-2.7,Python,Python 2.7,我试图在解析100个XMLs之后获得某些数据。最后,我将数据写入CSV文件。问题是页眉以交替行打印。如何使标题仅打印在第一行上 我的代码: def main(): asset\u metadata=glob.glob(os.path.join(asset\u metadata\u path,u'*.xml')) movies=glob.glob(os.path.join(TS_path,u'*.TS')) subtitles=glob.glob(os.path.join(TS_path,'.*.

我试图在解析100个XMLs之后获得某些数据。最后,我将数据写入CSV文件。问题是页眉以交替行打印。如何使标题仅打印在第一行上

我的代码:

def main():
asset\u metadata=glob.glob(os.path.join(asset\u metadata\u path,u'*.xml'))
movies=glob.glob(os.path.join(TS_path,u'*.TS'))
subtitles=glob.glob(os.path.join(TS_path,'.*.pac'))
内容列表=提取id(资产元数据)
show=[]
filecount=0
对于资产单元元数据中的p:
filecount+=1
打印(u'处理:{p}'。格式(p=p)。编码('utf-8'))
content\u id,content\u name,has\u trailer,trailer\u id,series\u id=parse\u file(p)
movie_path=os.path.join(TS_path,{c}.TS'.format(c=content_id))
subtitles_ara=os.path.join(TS_path,{c}.pac'.格式(c=content_id+“-ara”))
subtitles_eng=os.path.join(TS_path,{c}.pac'.格式(c=content_id+“-eng”))
电影_错误=“”
拖车_错误=“”
SHOW_ERROR=“”
SUBTITLE_ARA_ERROR=“”
SUBTITLE_ENG_ERROR=“”
错误=0
如果电影路径不在电影中:
电影错误=“否”
错误=1
如果有_拖车==“Y”:
trailer_path=os.path.join(TS_path,{c}.TS'.格式(c=trailer_id))
如果拖车路径不在电影中:
拖车错误=“否”
错误=1
如果字幕不在字幕中:
SUBTITLE\u ARA\u ERROR=“否”
错误=1
如果字幕不在字幕中:
SUBTITLE_ENG_ERROR=“否”
错误=1
如果序列号不在内容列表中:
显示错误=“否”
show.append(序列号)
如果错误==1:
打开(“xml_validate.csv”,mode='a')作为文件:
FieldName=['Movie ID'、'Movie Title'、'Movie Available'、'Trail Available'、'Show/Season ID'、'Show/Season Available'、'阿拉伯语字幕'、'英语字幕']
writer=csv.DictWriter(文件,字段名=字段名)
writer.writeheader()
writer.writerow(
{'Movie ID':content\u ID,'Movie Title':content\u name,'Movie Available':Movie\u ERROR,
“可用预告片”:预告片错误,“节目/季节Id”:系列节目Id,“节目/季节可用”:节目错误,“阿拉伯语字幕”:字幕错误,“英语字幕”:字幕错误(英文)
我附上了截图以及


如何仅在第一行打印标题?

您每次都要创建一个新的
csv.DictWriter
实例,并将其附加到现有文件中。相反,考虑打开文件一次(在循环之外),并继续逐行写入一个CSV。大概是这样的:

fieldnames=['Movie ID','Movie Title','Movie Available','trail Available','Show/Season ID','Show/Season Available','阿拉伯语字幕','English字幕']
打开(“xml_validate.csv”,mode='a')作为文件:
writer=csv.DictWriter(文件,字段名=字段名)
writer.writeheader()
对于资产单元元数据中的p:
#做所有其他的事情。。。
如果错误==1:
writer.writerow(
{
“电影ID”:内容\u ID,
“电影标题”:内容和名称,
“电影可用”:电影错误,
“拖车可用”:拖车错误,
“秀/季Id”:系列\季Id,
“显示/季节可用”:显示错误,
“阿拉伯语字幕”:字幕错误,
“英语字幕”:字幕错误
}
)

获取此错误。文件“validator.py”,第126行,在main()文件“validator.py”,第114行,在主“可用预告片”:预告片错误,“Show/Season Id”:系列Id,“Show/Season Available”:Show\u错误,“阿拉伯语字幕”:SUBTITLE\u ARA\u错误,“英语字幕”:SUBTITLE\u ENG\u ERROR})文件“/usr/lib64/python2.7/csv.py”,第148行,in-writerow返回self.writer.writerow(self.\u dict\u to\u list(rowdict))值错误:对关闭的文件执行I/O操作打开文件后是否取消缩进?请注意,我的示例中的整个循环都在context manager.sweet中!很乐意帮忙