使用c#从一个csv文件中按值拆分多个csv文件

里卡多·詹姆斯·菲奥里

我需要打开一个csv文件。比我需要过滤每个数据并为其生成每个值的输出。

◘例子

•输入文件=“ full list.csv”

NAME        CITY
Mark        Venezia
John        New York
Lisa        San Miguel
Emily       New York
Amelia      New York
Nicolas     Venezia
Bill        San Miguel
Steve       Venezia

输出将是=

•file1 =“完整list_Venezia.csv”

NAME        CITY
Mark        Venezia
Nicolas     Venezia
Steve       Venezia

•file2 =“完整list_New York.csv”

NAME        CITY
John        New York
Emily       New York
Amelia      New York

•file3 =“完整列表_圣米格尔”

NAME        CITY
Lisa        San Miguel
Bill        San Miguel

我在Visual Studio上将C#与ConsoleApplication一起使用,并开始以这种方法读取输入文件:

string inputFile = "full list.csv";
string outputFile;
string line;
string titles = File.ReadLines(inputFile).First();
System.IO.StreamReader file = new System.IO.StreamReader(inputFile);
while ((line = file.ReadLine()) != null)
{
}
file.Close();

System.IO.StreamWriter fileOut = new System.IO.StreamWriter(outputFile);
foreach (DatiOutput objOut in listOutput)
{
}
fileOut.Close();

有没有可以过滤所需数据的算法?

闲置心智

这是一种非LINQy的方法,该方法使用Dictionary来基于城市名称作为Key来保留对每个输出文件的引用(但是LINQ并没有错!):

string[] values;
string header;
string line, city, outputFileName;
string inputFile = "full list.csv";
Dictionary<string, System.IO.StreamWriter> outputFiles = new Dictionary<string, System.IO.StreamWriter>();
using (System.IO.StreamReader file = new System.IO.StreamReader(inputFile))
{
    header = file.ReadLine();
    while ((line = file.ReadLine()) != null)
    {
        values = line.Split(",".ToCharArray());
        city = values[1];
        if (!outputFiles.ContainsKey(city))
        {
            outputFileName = "full list_" + city + ".csv";
            outputFiles.Add(city, new System.IO.StreamWriter(outputFileName));
            outputFiles[city].WriteLine(header);
        }
        outputFiles[city].WriteLine(line);
    }
}   
foreach(System.IO.StreamWriter outputFile in outputFiles.Values)
{
    outputFile.Close();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

同时从一个写入多个csv文件,在Golang中的分区列上拆分

使用 powershell 合并行并将内容从一个 .csv 拆分为多个文件

使用powershell根据内容将内容从一个.csv拆分为多个文件

从一个CSV创建多个文件,从一个列中的每个值创建一个文件[Powershell]

根据Powershell中的大小将一个较大的csv文件拆分为多个csv文件

使用Powershell从一个文件夹中的多个CSV文件中删除前15行

在python中将一个csv拆分为多个文件

蟒蛇| 考虑 csv 标头,从一个文件夹中合并多个 csv(100+)个文件

使用熊猫确定一个CSV文件中的值是否在另一个CSV文件中丢失

如何根据给定条件将一个csv文件拆分为多个csv?

Python-从一个大CSV文件写入多个每月CSV文件-自动文件名以反映月份

如何仅使用bash工具将一个大型CSV文件拆分为多个大小相等的文件?

创建多个csv文件并使用rails在一个zip归档文件中全部下载

在 C# 中使用另一个文件从一个文件中删除字符串?

在csv文件中创建一个重复的行以分隔列中的多个值(python)

如何从每个键具有多个值的字典中写入一个csv文件?

将多个 csv 文件中的几列合并到一个 csv 文件中

将多个CSV文件中的列数据合并到一个CSV文件中

Powershell或C#:使用CSV数据将文件从一个位置复制到另一位置

使用pyspark将多个csv文件合并到Azure Blob存储中的一个csv文件

使用nodejs中的fast-csv根据列值将csv文件拆分为多个csv文件

从一个csv列创建多个文件。Python 2.7.12

从一个 csv 文件中获取一行以在不同的 csv 文件中搜索匹配的行

从 csv 文件中读取一个值 dash python

C#在CSV文件的字符串之间添加一个空值

使用 Python 将多个 URL 中的不同变量抓取到一个 CSV 文件中

如何在多个csv文件中一次按行查找(并输出)第一个值1和最后一个值1的位置?

检查另一个csv文件中每一行的csv文件值

合并多个csv文件以在Python中形成一个csv文件