如何编写python“ with”语句?

问题描述 投票:0回答:2

我有这段代码,应该使用'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是我的笔记本电脑上的文件,您不必拥有它(我认为)。

python python-3.x with-statement file-read
2个回答
1
投票

尝试:

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

0
投票

您可以尝试这样的事情:

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
  1. 使用with不需要打开/关闭文件并捕获异常。
  2. 如果使用open()进行只读操作,则可以删除r,因为它是默认设置。
  3. [line.strip()line.replace('\n','')更直接。
  4. csvData中放入with以确保即使文件不存在也始终定义csvData
© www.soinside.com 2019 - 2024. All rights reserved.