逐行解析文件路径的 CSV [逻辑请求]
Parsing CSV of files paths line-by-line [Logic Request]
我有一个棘手的数据集要解析,一直无法为其制定处理方法,几个失败的想法让我更加困惑...
CSV 格式的示例数据 - 处理前
C:\User1\Videos\videos
10
C:\User1\Videos\videos
22
C:\User2\Videos\videos
8
C:\User2\Videos\videos
67
C:\User3\Videos\videos
18
C:\User3\Videos\videos
12
C:\User4\Videos\videos
90
我正在尝试合并每个用户的视频目录中的视频文件的长度,并输出每个用户的列表以及他们所有文件的总运行时间。
结果 - 处理后
C:\User1\Videos\videos
32
C:\User2\Videos\videos
75
C:\User3\Videos\videos
30
C:\User4\Videos\videos
90
我正在寻找伪代码或关于如何实现此结果的任何建议。我在尝试使用嵌套循环方面一直没有成功,并且很难将其他解决方案概念化。为了方便 Windows 中的文件处理,我用 VBScript 编写了这个。
非常感谢您的提前帮助,非常感谢您提供的任何建议。
首先,这是一个行分隔格式,每条记录两行。
1: 目录
2:视频长度
其次,您只需要一个循环来读取文件的每一行并处理数据。
步骤
- 调暗 dic 变量。设置 dic = CreateObject("Scripting.Dictionary").
- 文件路径、用户密钥和长度值的暗变量
- 循环并从文件中读取行
- 在循环内,读取第 1 行并识别记录的用户。 VBScript 具有拆分字符串的能力。根据示例,如果想法是聚合 User1 下的所有长度,无论剩余的子文件夹是什么,然后拆分字符串并获取第一个路径元素并将其用作用户密钥。您可以检查第二个元素是否是要过滤的视频等,或者使用更多元素作为键,或者如结果示例中所示,使用完整字符串作为键进行精确匹配。将用户密钥存储在局部变量中。
- 在循环内部,读取第二行并从第2行解析长度,存储在局部变量长度中。
- 在循环中,检查键是否存在于字典中,如果存在,则获取键的值并添加到产生总和的长度,将键,和添加到字典中。 "dic.Item(userkey) = sum" 否则,如果它不存在,则只需添加键,值 "dic.Item(userkey) = value"
- 从第 4 步开始重复,直到文件结束
- 通过获取键然后打印字典中的每个键和键的值来列出字典中的项目。
字典中存储的值可以是一个对象来存储更多信息。不要忘记错误处理。
我有一个棘手的数据集要解析,一直无法为其制定处理方法,几个失败的想法让我更加困惑...
CSV 格式的示例数据 - 处理前
C:\User1\Videos\videos
10
C:\User1\Videos\videos
22
C:\User2\Videos\videos
8
C:\User2\Videos\videos
67
C:\User3\Videos\videos
18
C:\User3\Videos\videos
12
C:\User4\Videos\videos
90
我正在尝试合并每个用户的视频目录中的视频文件的长度,并输出每个用户的列表以及他们所有文件的总运行时间。
结果 - 处理后
C:\User1\Videos\videos
32
C:\User2\Videos\videos
75
C:\User3\Videos\videos
30
C:\User4\Videos\videos
90
我正在寻找伪代码或关于如何实现此结果的任何建议。我在尝试使用嵌套循环方面一直没有成功,并且很难将其他解决方案概念化。为了方便 Windows 中的文件处理,我用 VBScript 编写了这个。
非常感谢您的提前帮助,非常感谢您提供的任何建议。
首先,这是一个行分隔格式,每条记录两行。
1: 目录
2:视频长度
其次,您只需要一个循环来读取文件的每一行并处理数据。
步骤
- 调暗 dic 变量。设置 dic = CreateObject("Scripting.Dictionary").
- 文件路径、用户密钥和长度值的暗变量
- 循环并从文件中读取行
- 在循环内,读取第 1 行并识别记录的用户。 VBScript 具有拆分字符串的能力。根据示例,如果想法是聚合 User1 下的所有长度,无论剩余的子文件夹是什么,然后拆分字符串并获取第一个路径元素并将其用作用户密钥。您可以检查第二个元素是否是要过滤的视频等,或者使用更多元素作为键,或者如结果示例中所示,使用完整字符串作为键进行精确匹配。将用户密钥存储在局部变量中。
- 在循环内部,读取第二行并从第2行解析长度,存储在局部变量长度中。
- 在循环中,检查键是否存在于字典中,如果存在,则获取键的值并添加到产生总和的长度,将键,和添加到字典中。 "dic.Item(userkey) = sum" 否则,如果它不存在,则只需添加键,值 "dic.Item(userkey) = value"
- 从第 4 步开始重复,直到文件结束
- 通过获取键然后打印字典中的每个键和键的值来列出字典中的项目。
字典中存储的值可以是一个对象来存储更多信息。不要忘记错误处理。