【发布时间】:2020-09-28 19:22:18
【问题描述】:
- 无法使用 pandas,因为模块安装受到限制。
必须根据第一列读取和分组 CSV 文件并存储第二和第三列值。
$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$
我试图进入一个列表,但坚持如何通过各个类型循环它们。 无法使用 pandas,因为模块安装受到限制。仅使用默认安装的模块。 问题:
我们可以根据集合的元素创建列表名称吗?
type[0]=[] # Middleware =[]
任何解决此问题的建议或有效方法。
【问题讨论】:
-
您的代码似乎已经完成了所需的工作。你能明确指定你想要的输出吗?
-
每次我运行我的脚本,设置的顺序都会改变,主列表也会改变,然后我无法再次从主列表中获取
-
sets未排序。 集合是没有重复元素的无序集合。 将集合转换为列表并对其进行排序。