2016-11-09 2 views
0

Я очень новичок в Python, и я не могу получить функции. Я понимаю, что они делают и как писать, но я не знаю, как их назвать, особенно когда дело доходит до параметров.Как это сделать, я вызываю эту функцию в Python?

import csv 

def get_data_list(file): 
    data_file = open("table.csv", "r") 
    data_list = [] 
    for line_str in data_file: 
     data_list.append(line_str.strip().split(',')) 
    return data_list 
+2

* "Я понимаю .. как их написать »*: вы могли бы исправить отступы? NB: эта функция никогда не использует аргумент. – trincot

ответ

1

Не знаете, что вы пытаетесь сделать внутри своей функции. Но вы можете называть как этот

import csv 

def get_data_list(file): 
    data_file = open("table.csv", "r") 
    data_list = [] 
    for line_str in data_file: 
     data_list.append(line_str.strip().split(',')) 
     return data_list 

get_data_list("abc.csv") 
+0

Я пытаюсь взять данные из файла csv и поместить его в новый список после того, как я раздели, разделил его и добавил в список. Я просто хочу, чтобы он вернул новый data_list. – tmp657

+0

@TaylorPatterson Я думаю, что fallandlearn означает, что вы передаете переменную с именем file, а затем никогда не используете ее, поскольку у вас есть жестко закодированное имя файла в вашем открытом заявлении. в этом примере '' abc.csv "' должен быть предоставлен, так как ваша функция ожидает одно входное значение, но затем оно быстро отбрасывается. – Aaron

+0

@TaylorPatterson, если вы хотите использовать 'data_list', который возвращается функцией, просто назначьте новую переменную вызываемой функции:' data = get_data_list («abc.csv») ' – Aaron

1
import csv 

data_list = list(csv.reader(open('table.csv', 'r'))) 
+0

это не отвечает на его вопрос ... – Aaron

+0

ну, мне сложно переводить вопрос. В нем говорится, что он не знает, как вызывать функции, а затем вызывает open(), append(), strip() и split(). Итак, я просто исправил код – Marat

+0

. Я думаю, что это просто недоразумение, что пользовательские функции различаются (как вы их называете) от встроенных функций. Мы все были новыми ... – Aaron

1

Ok ... Первое: Вы забыли identation в указанных выше функции линий. Второй: Я думаю, что вы могли бы уменьшить отступ на один уровень в последней строке. Третье: Вы можете вызвать функции таким образом: name_of_function (argument1, argument2, & так далее ...)

Ваш код будет выглядеть следующим образом:

import csv 

def get_data_list(file): 
    data_file = open("table.csv", "r") 
    data_list = [] 
    for line_str in data_file: 
     data_list.append(line_str.strip().split(',')) 
    return data_list 

get_data_list('file.csv') 
Смежные вопросы