Python Open XML并保存为CSV

时间:2018-01-24 21:01:41

标签: xml excel python-3.x csv subprocess

我需要打开一个XML文件并将其另存为CSV。 我对提取内容(即通过lmtree)不感兴趣。 我只是想让Python做我通常会做的事情(在Excel中打开XML文件并保存为CSV文件)。

我知道这可以在Excel中打开XML文件:

import subprocess
subprocess.Popen("%s %s" % (application_path, filepath))

......但我不确定从哪里开始。

提前致谢!

更新

  1. 这是一个示例文件(它是一个XML电子表格文件,如果有帮助的话): https://drive.google.com/open?id=193ML_2r5i56cEhydm1wYFQtXJCgRA3r_

  2. 不需要Python来启用编辑。我只需要阅读这个:

    https://www.thrivenetworks.com/blog/turn-off-enable-editing-office-2010/

2 个答案:

答案 0 :(得分:0)

已经为此构建了一个名为xmlutils的库。

  1. 运行pip install xmlutils以安装
  2. xml2csv --input "samples/fruits.xml" --output "samples/fruits.csv" --tag "item"转换为CSV
  3. 有关详细信息,请参阅this sitethe documentation

答案 1 :(得分:0)

这对我有用:

pip install pyautogui

files=glob.glob(pathin+"*.xml")

def lazysave(inputs):
    print("%s" % (inputs))
        #subprocess.Popen("%s %s" % (path, file),shell=True)
    subprocess.Popen(inputs,shell=True)
    time.sleep(3)
    pag.FAILSAFE = True
    pag.keyDown('ctrlleft');pag.press('s');pag.keyUp('ctrlleft') #save file
    pag.PAUSE = 1
    pag.press('right') #go to "No - do not keep same format"
    #pag.PAUSE = .5
    pag.press('enter') #select "No - do not keep same format"
    #pag.PAUSE = 2
    pag.press('tab') #go to filetype dropdown menu
    #pag.PAUSE = 2
    pag.press('down') #activate filetype dropdown menu
    #pag.PAUSE = 2
    pag.press('down');pag.press('down') #go to CSV filetype
    #pag.PAUSE = .5
    pag.press('enter') #select CSV filetype
    #pag.PAUSE = .5
    pag.press('enter') #select "SAVE" button
    #pag.PAUSE = .5
    pag.press('enter') #select "Yes" button to keep CSV format
    #pag.PAUSE = .5
    pag.keyDown('altleft');pag.press('f4');pag.keyUp('alt') #close file
    pag.PAUSE = .5
    pag.press('right') #go to do not save (already saved)
    #pag.PAUSE = .5
    pag.press('enter') #select do not save (already saved)

for f in files:
     inputs=[path,f]
     lazysave(inputs)