提问人:PythonKS 提问时间:2/1/2023 最后编辑:RobertPythonKS 更新时间:2/1/2023 访问量:97
Python 中的 SAX 解析器
SAX Parser in Python
问:
我正在使用 Python SAX 解析器解析文件夹中的 xml 文件,并使用 pandas 在 CSV 中写入输出,但我只从 CSV 中的最后一个文件中获取数据。
我是 Python 的新手,这是第一次尝试 SAX 解析
文件读取:
for dirpath, dirs, files in os.walk(fp1):
for filename in files:
print(files)
fname = os.path.join(dirpath,filename)
if fname.endswith('.xml'):
print(fname)
#for count in files:
parser.parse(fname)
def characters(self, content):
rows = []
cols = ["ReporterCite","DecisionDate","CaseName","FileNum","CourtLocation","CourtName","CourtAbbrv","Judge","CaseLength","CourtCite","ParallelCite","CitedCount","UCN"]
#ReporteCite, DecisionDate, CaseName, FileNum, CourtLocation, CourtName, CourtAbbrv, Judge, CaseLength, CourtCite, ParallelCite, CitedCount, UCN
rows.append({"ReporterCite":self.rc,
"DecisionDate": self.dd,
"CaseName": self.can,
"FileNum": self.fn,
"CourtLocation": self.loc,
"CourtName": self.cn,
"CourtAbbrv": self.ca,
"Judge": self.j,
"CaseLength": self.cl,
"CourtCite": self.cc,
"ParallelCite": self.pc,
"CitedCount": self.cd,
"UCN": self.rn})
#print(rows)
df = pd.DataFrame(rows, columns=cols)
df.to_csv(fp2,index=False)
答:
0赞
Paul-ET
2/1/2023
#1
我假设你总是会覆盖你之前的结果。这是一个熊猫问题,而不是 SAX 问题。你想附加到现有的csv,对吧?如果是这种情况,您必须使用 mode = 'a',例如更多选项,请参阅文档df.to_csv('filename.csv',mode = 'a')
- “w”打开写入,首先截断文件(默认)
- “x”打开以进行独占创建,如果文件已存在,则失败
- “a”打开以供写入,如果存在,则附加到文件末尾
评论
0赞
PythonKS
2/1/2023
非常感谢保罗。这正在起作用,只是我需要找到一种方法来处理重复项。非常感谢
评论