gpt4 book ai didi

python - 如何忽略csv文件中的空白行

转载 作者:太空狗 更新时间:2023-10-30 02:22:47 25 4
gpt4 key购买 nike

我正在使用 dictreader 打开一些 csv 文件,将它们添加到一个大的词典列表中,然后使用 dictwriter 将词典列表写入一个 csv 文件。

我遇到的问题是生成的 csv 文件在包含数据的行之间有一堆空白行。我想当读取 csv 文件时,它不会忽略空白行。

有人可以向我发送正确的方向以了解我如何说忽略空白行吗?

我试过在 csv 模块中找到它,但没有成功。

如有任何帮助,我们将不胜感激。

嗨!感谢回复!我更希望 dictreader 在行中有任何感兴趣的内容时读取行,但只有当它完全空白时才会忽略行。例如,如果我有

{'1': '', '2': 'two', '3': ''},
{'1': '', '2': '', '3': ''}

我只想留着

{'1': '', '2': 'two', '3': ''} 

我发现以下对我有用

for dictionary in csv.DictReader(open(filename)):
if any(x != '' for x in dictionary.itervalues()):

最佳答案

您可以读取一个假文件对象,它会跳过真实文件中的空行。我不完全了解你在做什么,但如果空行使你的阅读过程崩溃,或者你真的不希望那里有空行,这将比 mac 的答案更好。

class BlankLineSkipper(object):
def __init__(self, file):
self.file = file
def __iter__(self):
return (line for line in self.file if line.strip())
def read(self):
return ''.join(self)

>>> print open('lol.csv').read()
5,7,8

1,2,3

abc,lol,haha


>>> list(csv.reader(open('lol.csv')))
[['5', '7', '8'], [], ['1', '2', '3'], [], ['abc', 'lol', 'haha'], []]

>>> list(csv.reader(BlankLineSkipper(open('lol.csv'))))
[['5', '7', '8'], ['1', '2', '3'], ['abc', 'lol', 'haha']]

(您可能需要实现 readline() 或其他方式来使您的代码正常工作,具体取决于它如何使用文件对象。)

关于python - 如何忽略csv文件中的空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422250/

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