Python 如何支持多种文件格式和字段分隔符?

Python 如何支持多种文件格式和字段分隔符?,python,utf-8,ascii,Python,Utf 8,Ascii,以表格形式包含内容的文件可以至少以3种格式导出(UTF-8、UTF-16LE、Ascii),列可以用制表符分隔、皮尔克罗分隔或其他方式分隔,并且每个项周围都有引号/刺等。下面的函数读取一个表,该表是UTF-8,由pilcrows分隔,每个项都被荆棘包围 def read_app_dat(app_export): """ Reads and parses DAT exported from App Assumes that delimiters are concordance.

以表格形式包含内容的文件可以至少以3种格式导出(UTF-8、UTF-16LE、Ascii),列可以用制表符分隔、皮尔克罗分隔或其他方式分隔,并且每个项周围都有引号/刺等。下面的函数读取一个表,该表是UTF-8,由pilcrows分隔,每个项都被荆棘包围

def read_app_dat(app_export):
    """ Reads and parses DAT exported from App

    Assumes that delimiters are concordance.

    Args:
        app_export: str, file path to DAT exported by App
    Returns:
        Dictionary where ID is mapped to a list where the first
        tuple is URI ID
    """
    app_dict = {}
    f = codecs.open(app_export, encoding='utf-8')
    for line in f:
        each_row = re.sub(r'\xfe', "", line).split("\x14")
        if "ID" in each_row[0] or "URI" in each_row[1]:
            pass
        else:
            app_dict[each_row[0]] = each_row[1]
    return app_dict
正如目前编写的,我需要为每个场景定义不同的每一行

each_row = re.sub(r'\xfe', "", line).split("\x14")
那不是一件很像蟒蛇的事。如何更好地处理分隔符,在本例中是Pilcrows和thorns,以便将它们作为参数调用?到目前为止,该模块的帮助最大


谢谢你抽出时间

您对使用stdlib()中的
csv
模块有何看法?这似乎是一种更好的方法。我的假设是,我没有处理逗号分隔的值,因此没有更仔细地查看模块。我想我的假设可能是错误的,谢谢。剩下的问题是如何处理不同类型的分离器,如皮尔克罗分离器。根据使用的格式,它们在文件中的显示可能会有所不同。只需更好地阅读有关模块的文档即可。您应该指定几种类型的分隔符。您是对的,csv模块绝对是一种选择。