创建模块将输入 csv 文件加载到应用程序 - dijkstra 算法

Create module loading input csv files to the app - dijkstra's algorithm

我需要在 Python 中创建一个函数来读取 csv 文件,当文件不是正确的 csv 文件时,它会抛出一条错误消息。 应该是dijkstra算法相关的应用模块之一。 该文件由用逗号分隔的 3 列组成。 这些是数字。第一个是起始节点,第二个是结束节点,第三个是它们之间的权重。

如果你想保持 csv 文件干净,你应该使用 csv.DictReader()csv.DictWriter() 来读取文件检查文件是否包含预期的列你可以使用以下内容:

import csv
table ={'V1':[],'V2':[], 'edge_weight':[]}

with open('test.csv') as csv_file:
    reader = csv.DictReader(csv_file)
    try:
        for row in reader:
            for k in table.keys():
                if row[k] is not None:
                    table[k].append(row[k])  
                else:
                    raise Exception

    except Exception:
        print('wrong csv file')

如果文件不包含名称与字典列相同的 header 或列中缺少值,将引发异常。 您也可以指定自己的例外情况。 Defining own exceptions

Using csv.DictWriter()