繁体   English   中英

Python 中的 SAX 解析器

[英]SAX Parser in Python

我正在使用 Python SAX 解析器解析文件夹中的 xml 个文件,并使用 pandas 在 CSV 中写入 output,但我只从 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)

我假设你总是会覆盖你以前的结果。 这是一个 pandas 问题,不是 SAX 问题。 你想把 append 改成现有的 csv 对吧? 如果是这种情况,您必须使用mode = 'a' ,例如df.to_csv('filename.csv',mode = 'a') More options, see Doc

  • 'w' 打开写入,首先截断文件(默认)
  • 'x' 打开独占创建,如果文件已存在则失败
  • 'a' 以写入方式打开,如果文件存在则追加到文件末尾

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM