代码之家  ›  专栏  ›  技术社区  ›  user3723688

python导入csv函数

  •  -1
  • user3723688  · 技术社区  · 8 年前

    为了学习python,我从简单地复制一些用于日常生产力任务的powershell脚本开始。我想问大家为什么这个方法在python中不起作用:

    def csvIn(path):
        import csv
        with open(path) as myFile:
            csv = csv.reader(myFile)
        return csv
    
    a = csvIn('C:/Users/xxxxxx/Desktop/DL/add.csv')
    
    for row in a:
        print(row)
    

    我试图编写一个函数,导入CSV文件并将其输出放入列表(数组)。如果我在函数调用之外调用导入csv,整个过程都会正常工作。当我从函数内部尝试它时,我得到了这样的结果:“ValueError:对关闭的文件执行I/O操作。”

    1 回复  |  直到 8 年前
        1
  •  0
  •   jambox    8 年前

    因为with是一个上下文管理器,所以当程序到达返回行时,文件已经关闭。

    建设性的建议是将其合并为一个:

    import csv
    PATH = 'C:/Users/xxxxxx/Desktop/DL/add.csv'
    with open(PATH) as myFile:
       h_csv = csv.reader(myFile)
       for row in h_csv:
          print(row)
    

    编辑:根据要求,这里有一个示例,它是一个函数,但没有with:

    import csv
    
    def csvIn(path):
        myFile = open(path)
        h_csv = csv.reader(myFile)
        return h_csv
    
    a = csvIn('C:/Users/xxxxxx/Desktop/DL/add.csv')
    
    for row in a:
        print(row)
    
    推荐文章