Как я могу определить тип переменной, заданной в параметре функции, с помощью Python?

#python #file #variables

Вопрос:

У меня есть функция Python с переменным файлом. Моя проблема сейчас в том, что я хочу работать с именем файла.

Моя проблема сейчас в том, что тип переменной не известен автоматически внутри функции. Какие простые возможности у меня есть, чтобы определить, какая переменная является файлом?

 import pandas_datareader as web  import pandas as pd  import pickle    def import_prices(file, start, end):  tickers = pickle.load(file)  main_df = pd.DataFrame()  i = 0  for ticker in tickers:  df = web.DataReader(ticker, 'yahoo', start, end)  df.rename(columns={"Adj Close": ticker}, inplace=True)  df.drop(columns=["Open", "High", "Low",  "Close", "Volume"], inplace=True)  if main_df.empty:  main_df = df  else:  main_df = main_df.join(df, how='outer')  i = i   1  print(i)  main_df.to_csv('Webscrapper/{}_prices.csv'.)  

имя файла без материала после точки, которую я хочу вставить в скобки

main_df.to_csv(‘Webscrapper/{}_prices.csv’.)

Ответ №1:

file Переменная должна содержать имя файла, как я вижу в вашем коде. Вы можете проверить следующее, чтобы убедиться, что файл содержит строковое значение isinstance(file, str) .

Вы также можете использовать более сложные проверки, такие как isinstance(file, pd.DataFrame) или

 from io import IOBase  isinstance(someobj, IOBase)  

Было бы лучше использовать подсказки типа в определении функции. Я предполагаю, что start и end являются интами, но вы могли бы изменить это, чтобы соответствовать правильному типу.

 def import_prices(file: str, start: int, end: int) -gt; None