Python 读取CSV文件并存储特定列 无法使用熊猫,因为模块安装受到限制。

Python 读取CSV文件并存储特定列 无法使用熊猫,因为模块安装受到限制。,python,csv,Python,Csv,CSV文件必须根据第1列进行读取和分组,并存储第2列和第3列的值 $cat Credentials.csv Type,Username,Password Unix,Raju,qwe Middleware,Anku,asd Database,Trigun,zxc Unix,Priti,poi Middleware,Sheetal,lkj 根据类型,在特定路径中,必须删除用户名和密码值,以便进一步处理, 例如:对于Unix,将工作路径更改为/some_path/Unix/,然后循环两行 impo

CSV文件必须根据第1列进行读取和分组,并存储第2列和第3列的值

$cat Credentials.csv 
Type,Username,Password
Unix,Raju,qwe
Middleware,Anku,asd
Database,Trigun,zxc
Unix,Priti,poi
Middleware,Sheetal,lkj
根据类型,在特定路径中,必须删除用户名和密码值,以便进一步处理, 例如:对于Unix,将工作路径更改为/some_path/Unix/,然后循环两行

import csv

#declare list / set
type=set()
master=[]

with open ('/Users/anku/Documents/dev/Credentials.csv', mode='r', encoding='utf-8-sig')as csv_input:
    csv_file = csv.reader(csv_input)
    next(csv_file)

    #get unique value of system types
    for row in csv_file:
        type.add(row[0])
    print(type)

    #back to top of the csv file
    csv_input.seek(0)

    #
    for types in type:
        print("The value: " + types )
        nested = []
        for row in csv_file:
            if row[0] == types:
                nested.append(row[1:3])
        print(nested)
        master.append(nested)
        csv_input.seek(0)
    print(master)
输出:

bash-3.2$ /usr/bin/python3 /Users/anku/Documents/dev/ReadFilesCSV.py
{'Middleware', 'Database', 'Unix'}
The value: Middleware
[['Anku', 'asd'], ['Sheetal', 'lkj']]
The value: Database
[['Trigun', 'zxc'], ['Kunal', 'mnb']]
The value: Unix
[['Raju', 'qwe'], ['Priti', 'poi']]
[[['Anku', 'asd'], ['Sheetal', 'lkj']], [['Trigun', 'zxc'], ['Kunal', 'mnb']], [['Raju', 'qwe'], ['Priti', 'poi']]]
bash-3.2$ 
我正试图进入一个列表,但仍停留在如何通过单个类型循环它们上。 无法使用熊猫,因为模块安装受到限制。仅使用默认安装的模块。 问题:

我们可以根据集合的元素创建列表名吗

type[0]=[] # Middleware =[]
任何解决此问题的建议或有效方法。

如a中所述

没有订购。集合是没有重复元素的无序集合。将集合转换为列表并对其排序

或者你可以使用一个,它能记住你设置键的顺序,并在一个循环中完成所有事情

from collections import OrderedDict
data = OrderedDict()
with open('/Users/anku/Documents/dev/Credentials.csv', mode='r', encoding='utf-8-sig') as csv_input:
    csv_file = csv.reader(csv_input)
    next(csv_file)

    #get unique value of system types
    for row in csv_file:
        row_type = row[0]
        row_data = row[1:]
        # if the dict doesn't already have the key, set it to an empty list
        if not row[0] in data:
            data[row_type] = []
        data[row_type].append(row_data)
然后,您可以按添加顺序查看数据:

print(data.keys()) # Should print the keys in the order they were added
print(data.items())

您的代码似乎已经完成了所需的工作。你能显式地指定你想要的输出吗?每次我运行我的脚本时,设置的顺序都会改变,主列表也会改变,那么我就不能再次从主列表中提取,因为没有顺序。集合是没有重复元素的无序集合。将集合转换为列表并对其排序。