为了学习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操作。”
因为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)