从 csv 文件中读取,并删除任何只有“”的行
Posted
技术标签:
【中文标题】从 csv 文件中读取,并删除任何只有“”的行【英文标题】:Reading from a csv file, and removing any rows that only have "" 【发布时间】:2021-12-18 12:43:14 【问题描述】:使用流阅读器从 csv 文件中读取数据,然后用逗号从正在读取的行中拆分每个值。
我想删除整行中包含空值的任何行。
"test", "test", "test", "test"
"test1", "test1", "test1", "test1"
"", "", "", ""
如果第三行为空,我希望我的方法不处理第三行。
using (StreamReader reader = new StreamReader(stream))
reader.ReadLine();
while (reader.Peek() != -1)
var line = reader.ReadLine();
string[] data = line.Split(',');
// Convert data into an object
...
如果它看起来不像第三个数组,我只想将数据转换为一个对象。 "", "", "", ""
【问题讨论】:
所以,如果您的行正好有四列,它应该看起来像 ,,, 是什么阻止您在开始处理该行之前检查它? 不相关:在处理 CSV 时,我建议使用 CSV 库。 “如果能够在读取该行后检查它是否为 ,,”,那将是很好的选择 - 是什么让您无法做到这一点? 【参考方案1】:你可以使用 Linq
// At least 1 empty value
bool hasEmpty = data.Any(string.IsNullOrWhiteSpace);
// All values are empty
bool allEmpty = data.All(string.IsNullOrWhiteSpace);
【讨论】:
@Steve 更正为使用数组【参考方案2】:只需添加一个简单的 if 语句:
if (data.Any() && !data.All(a => a == string.Empty))
// Convert data into an object
【讨论】:
以上是关于从 csv 文件中读取,并删除任何只有“”的行的主要内容,如果未能解决你的问题,请参考以下文章
如何删除错误行错误的行并使用 pandas 或 numpy 读取剩余的 csv 文件?