python - 从 CSV 文件构建列表列表

标签 python list csv

我有一个要解析的 Excel 文件(我正在将其导出为 csv),但我无法找到最佳解析方法。 csv 是我网络中计算机的列表,以及每台计算机在本地管理员组中的帐户。我用元组做了类似的事情,但每台计算机的帐户数量从 1 到 30 不等。我想建立一个列表列表,然后遍历每个列表以找到应该存在的帐户(管理员等)并删除它们,这样我就可以导出一个只包含不应该是本地管理员但确实是本地管理员的帐户的列表。 csv文件格式如下:

"computer1"    Administrator    localadmin    useraccount
"computer2"    localadmin       Administrator 
"computer3"    localadmin       Administrator user2account

任何帮助将不胜感激

编辑:这是我正在使用的代码

import csv 
import sys #used for passing in the argument
file_name = sys.argv[1] #filename is argument 1
with open(file_name, 'rU') as f:  #opens PW file
    reader = csv.reader(f)
    data = list(list(rec) for rec in csv.reader(f, delimiter=',')) #reads csv into a list of lists
    f.close() #close the csv

for i in range(len(data)):
    print data[i][0] #this alone will print all the computer names
    for j in range(len(data[i])) #Trying to run another for loop to print the usernames
        print data[i][j]

问题出在第二个 for 循环上。我希望能够阅读每一行,现在只打印它们。

最佳答案

这应该让您走上正确的轨道:

import csv 
import sys #used for passing in the argument
file_name = sys.argv[1] #filename is argument 1
with open(file_name, 'rU') as f:  #opens PW file
    reader = csv.reader(f)
    data = list(list(rec) for rec in csv.reader(f, delimiter=',')) #reads csv into a list of lists

    for row in data:
        print row[0] #this alone will print all the computer names
        for username in row: #Trying to run another for loop to print the usernames
            print username

最后两行将打印所有行(包括“计算机”)。做

for x in range(1, len(row)):
    print row[x]

...避免两次打印计算机。

请注意,使用“with”结构时不需要 f.close(),因为当“with” block 退出时资源将自动关闭。

就我个人而言,我会这样做:

import csv 
import sys #used for passing in the argument
file_name = sys.argv[1] #filename is argument 1
with open(file_name, 'rU') as f:  #opens PW file
    reader = csv.reader(f)
    # Print every value of every row. 
    for row in reader:
        for value in row: 
            print value

这是一种遍历数据的合理方式,应该为您添加所需的任何进一步逻辑奠定坚实的基础。

关于python - 从 CSV 文件构建列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19838380/

相关文章:

python - 将组合结果分组到带有子列表的列表中

java - 如何在Java中的单个列表中存储多个数据库列值

javascript - Angular 如何将 JSON 数组值放入现有范围?

python - 我的 JSON 解析不正确。我究竟做错了什么?

python - 错误: No module named [filename]

python - 在函数中使用IPython.display.audio在jupyter笔记本中播放音频无法正常工作

python - 规范化 2D Numpy 数组 : Zero Mean Unit Variance

python - 使用 Shutil Copy 会中断 csv 数据的循环

javascript - 从 Chrome 开发控制台将所有 anchor 标记引用导出到格式化的 CSV 文件

php - 开发一致库的最佳实践是什么?