функция Dynami c с использованием строки - python - PullRequest
0 голосов
/ 12 февраля 2020

Я видел сообщения, похожие на это, но не совсем.

import pandas as pd
dynamic_fun = {
    '.csv': read_csv,
    '.xlsx': read_excel
}

Я хотел бы сделать что-то подобное:

df = pd.(dynamic_fun['.csv'])('Z:/test1.txt', delimiter = "\t")

или

df = pd.(dynamic_fun)['.csv']('Z:/test1.txt', delimiter = "\t")

Вместо чего-то подобного:

df = pd.read_csv('Z:/test1.txt', delimiter = "\t")

Принципиально измените функцию динамически, используя словарь.

Спасибо,

1 Ответ

1 голос
/ 12 февраля 2020

Вы почти там:

import pandas as pd
dynamic_fun = {
    '.csv': pd.read_csv,
    '.xlsx': pd.read_excel
}

df = dynamic_fun['.csv']('Z:/test1.txt', delimiter = "\t")

Вам необходимо сохранить полную ссылку на метод (включая pd.) в словаре

...