逗号分隔符的推荐替代方法是什么[重复]

问题描述 投票:0回答:3

我需要将程序输出写入文件。但是,某些字段已包含空格,逗号,分号,制表符。所以我不想使用空格,制表符,逗号作为字段分隔符。数据来自网络,因此服务器管理员可能使用错误的格式。

我虽然使用任何组成的字符串,比如我的名字。但如果输出可能被其他研究人员使用,那么这可能是不专业的。

这件事有什么建议吗?如果我害怕使用逗号,分号,制表符,空格作为分隔符,我该怎么用?

编辑:对于那些建议使用json或csv模块的答案,请注意我想将文件加载到MySQL数据库中。我只能向MySQL指定字段由[some separator]分隔。我还需要一个简单的解决方案。

python separator file-writing
3个回答
3
投票

使用逗号(或制表符),但使用正确的序列化程序,它知道如何在写入时转义字符,并在读取时取消它们。 The csv module知道如何做到这一点,似乎符合您的可能要求。

是的,您可以尝试找到一些从未出现在您的数据中的随机字符,但这只意味着如果该字符出现,您将会死得很厉害,这意味着产生的输出没有现有的解析器知道如何处理。 CSV是一种众所周知的格式(如果令人惊讶地复杂,具有不同的方言),并且很可能由现有的库以任何语言消费它来解析。

JSON(由json模块在Python中处理)通常和语言无关的格式一样有用,就像pickle一样(虽然它只能在Python中读取),但是根据你的描述,CSV可能是开始的解决方案。


0
投票

通常,好的分隔符可以是任何类型的普通键盘式符号,不会在数据中的任何其他位置使用。我的建议是'|'要么 '/'。


0
投票

CSV文件通常在包含字段分隔符字符的字段周围使用引号,并使用反斜杠或其他引号来转义文字引号。

然而,CSV不是一种定义良好的格式,并且有许多不同供应商实现的变体。如果您想要一种可以存储结构化数据的更好的文本格式,您应该使用一种更好定义的序列化格式,例如JSON和YAML。

© www.soinside.com 2019 - 2024. All rights reserved.