我有这段代码,应该使用'with'语句或'with'方法编写。如果您对如何做有任何想法,或者对我有任何初步想法,我将不胜感激。
def read_csv(folder_file, sep):
'''
reads a csv file,
folder_file: a string containing file location and file name
sep: string containing the separater of records in each line
'''
mFile = open('earthquake_Curico_2010-02-27_acclerations_in_cms-2_time_in_s.csv', 'r')
csvData = []
for line in mFile:
csvData.append(line.replace('\n','').split(sep))
mFile.close()
return csvData
[earthquake_Curico_2010-02-27_acclerations_in_cms-2_time_in_s.csv
是我的笔记本电脑上的文件,您不必拥有它(我认为)。
尝试:
def read_csv(folder_file, sep):
'''
reads a csv file,
folder_file: a string containing file location and file name
sep: string containing the separater of records in each line
'''
with open('earthquake_Curico_2010-02-27_acclerations_in_cms-2_time_in_s.csv', 'r') as mFile:
csvData = []
for line in mFile:
csvData.append(line.replace('\n','').split(sep))
return csvData
您可以尝试这样的事情:
def read_csv(folder_file, sep):
'''
reads a csv file,
folder_file: a string containing file location and file name
sep: string containing the separater of records in each line
'''
csvData = []
with open(folder_file) as mFile:
for line in mFile:
csvData.append(line.strip().split(sep))
return csvData
with
不需要打开/关闭文件并捕获异常。open()
进行只读操作,则可以删除r
,因为它是默认设置。line.strip()
比line.replace('\n','')
更直接。csvData
中放入with
以确保即使文件不存在也始终定义csvData
。