【问题标题】:How can we merge multiple csv files?我们如何合并多个 csv 文件?
【发布时间】:2015-06-24 17:38:22
【问题描述】:

每个 CSV 文件可以有 1000 多个公共字段, 我们不能使用索引,因为字段的顺序可能不同, 一个字段在一个文件中可以没有值,但在另一个文件中可以有值。

【问题讨论】:

    标签: csv merge


    【解决方案1】:

    您还没有说明您正在开发哪种类型的应用程序...但我会在 .NET 中执行此操作并使用 Dictionary 对象。字典对象上的键将是字段名称(这解决了您的顺序不同的问题),每个字典项的值将是字符串列表(CSV 真正起源于字符串)。

    然后您可以枚举字典并将每个键的所有字符串连接成您想要的任何格式。

    这还没有经过全面测试......但应该可以帮助您:

        private void ReadCSVFiles (string[] filenames)
        {
            Dictionary<string, List<string>> data = new Dictionary<string, List<string>>();
            foreach (string filename in filenames)
            {
                string[] content = System.IO.File.ReadAllLines(filename);
    
                string[] fieldNames = content[0].Split(',');
                for (int i = 1; i < content.Length; i++)
                {
                    string[] tokens = content[i].Split(',');
                    for (int j = 0; j < fieldNames.Length; j++ )
                    {
                        List<string> values = null;
                        if (!data.TryGetValue(fieldNames[j], out values))
                        {
                            values = new List<string>();
                            data.Add(fieldNames[j], values);
                        }
                        values.Add(tokens[j]);
                    }
                }
            }
        }
    

    【讨论】:

    • 我正在寻找在 Unix 中可行的解决方案,可能是使用 awk 或 python
    • 祝你好运......我帮不了你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2023-02-14
    • 2014-05-17
    • 1970-01-01
    • 2013-07-19
    • 2014-07-04
    相关资源
    最近更新 更多