python import csv函数

时间:2017-11-21 14:37:25

标签: python list function return-value

尝试学习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文件并将其输出放入列表(数组)的函数。如果我在函数调用之外调用import csv,整个过程就有效。当我从函数内部尝试它时,我得到了这个:" ValueError:关闭文件的I / O操作。"

1 个答案:

答案 0 :(得分:0)

因为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)