I have the following setup, where in the pages folder I have 2 python files:
pages
|___ upload.py
|___ app.py
I would like to use the data frame which I already cached in upload.py and use it in app.py. See the code from upload.py:
upload_csv = st.sidebar.file_uploader('Upload file(s) here!')
@st.experimental_memo
def readCSV(upload_file):
if upload_file is not None:
try:
df = pd.read_csv(upload_file)
except UnicodeDecodeError:
df = pd.read_csv(upload_file, encoding='cp1252')
df.drop(index=df.index[0], axis=0, inplace=True)
df.reset_index(drop=True, inplace=True)
except Exception:
pass
print('The file type is not recognised. Please upload CSV file!')
return df
In app.py, I would like to import readCSV function and use the df for further processing.
Here is my attempt in app.py, which didn’t work.
df = readCSV(upload_csv)
Also, I don’t know how to import the upload.py module inside app.py. I read the suggestions about creating __init__.py in the same pages folder, but in that case it appears on my web interface as init which I don’t want.
Appreciate any help.
Thanks @Goyo
It worked when I removed the condition. In my understanding, I thought I was checking if ‘df’ exists in st.session_state dictionary, and if not, I am adding ‘df’ as a key, and df as a value. I didn’t think of it returning False.
Thanks