python - 如果遇到异常,则跳过XML阅读循环的迭代

标签 python mysql xml sorting lxml

我有一个从XML文件中读取某些标签的函数。我试图这样做,以便如果标签不存在(标签分配变量失败),则会调用异常,并将文件移至其他目录,并读入下一个文件。

这是我的功能:

def iterateOverXml():
    localPath = "C:\local"
    remotePath = "C:\outbox"
    errorPath = "C:\Error"
    xmlFiles = glob.glob1(localPath,"*.xml")
    for file in xmlFiles:
        print file
        a = os.path.join(localPath,file)
        element = etree.parse(a)


        try:
            data= element.xpath('//Foobar/Data/node()')
            parsedData = [{field.tag: field.text for field in data} for action in data]
            xmlType = parsedData[0]['FormType']
        except:
            shutil.move(os.path.join(localPath,file),errorPath)


        if xmlType == 'record':
            parseTitle(element)
            parseTracks(element)
            parseArtist(element)
            shutil.move(os.path.join(localPath,file),remotePath)


我如何才能做到这一点,如果遇到异常,它将移动文件,当前迭代停止并调用下一个文件?

最佳答案

我如何做到这一点,如果遇到异常,它将移动文件并跳至下一个文件?


只需使用continue

for file in xmlFiles:
    # ...

    try:
        # ....
    except:
        shutil.move(os.path.join(localPath,file),errorPath)
        continue  # <---- Will continue at the top of the for loop
                  #       with the next file in xmlFiles

关于python - 如果遇到异常,则跳过XML阅读循环的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706149/

相关文章:

python - openpyxl循环添加图像,仅添加所有图像的最后一个图像

python - 我怎样才能在 Django 中查询 .save()?

python - 如何在 python 程序中运行复杂的 sql 脚本?

python - Django Development : PyMongo or MongoEngine . .. 为什么?

python - VSCode -- 如何设置调试 Python 程序的工作目录

python - 如何从Python中的Google Cloud Storage中的非默认存储桶读取

php - SetInterval()泄漏内存,导致加载图像时出现问题

ruby-on-rails - 如何杀死 ActiveSupport 的 from/to xml 中的数组标签?

android - android :gravity ="center" - Android时键盘隐藏的EditText

android - 在 XML 中的自定义 ScrollView 上膨胀类时出错?