gpt4 book ai didi

python - 使用不同的行终止符在 Python 中读取 csv 文件

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:35 25 4
gpt4 key购买 nike

我有一个 CSV 格式的文件,其中分隔符是 ASCII 单位分隔符 ^_ 行终止符是 ASCII 记录分隔符 ^^(显然,因为这些是非打印字符,我只是在这里使用了一种标准的书写方式)。我已经编写了大量读取和写入 CSV 文件的代码,所以我的问题不在于 Python 的 csv 模块本身。问题是 csv 模块不支持读取(但它确实支持写入)除回车或换行符之外的行终止符,至少在我刚刚测试它的 Python 2.6 中是这样。文档说这是因为它是硬编码的,我认为这意味着它是在模块底层的 C 代码中完成的,因为我没有在 csv.py 文件中看到任何可以更改的内容。

有谁知道解决此限制的方法(补丁、另一个 CSV 模块等)?我确实需要读取一个不能使用回车符或换行符作为行终止符的文件,因为这些字符会出现在某些字段中,并且我想尽可能避免编写自己的自定义阅读器代码,尽管这很容易满足我的需求。

最佳答案

为什么不为 csv.reader 函数提供一个自定义的可迭代对象?这是一个简单的实现,它一次将 CSV 文件的全部内容读入内存(这可能是可取的,也可能不是可取的,具体取决于文件的大小):

def records(path):
with open(path) as f:
contents = f.read()
return (record for record in contents.split('^^'))

csv.reader(records('input.csv'))

我认为这应该可行。

关于python - 使用不同的行终止符在 Python 中读取 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1770934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com