#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