无法找到使用streamlit python代码上载文件的路径

ssgvzors  于 2022-11-26  发布在  Python
关注(0)|答案(1)|浏览(618)

我正在编写一个简单的python应用程序,用户可以在本地文件管理器中选择一个文件,然后尝试使用strealit进行上传。
我能够成功地把用户使用streamlit.uploader提供的文件,并将文件存储在stramlit应用程序文件夹中的临时目录中,但问题是我不能给出存储在新创建的目录中的文件的路径,以便将应用程序发送到我的gcp云桶中。
在下面添加我的片段,任何帮助都是感激的:)

def main():
    if file is not None:
        file_details = {"FileName":file.name,"FileType":file.type}
        st.write(file_details)
        with open(os.path.join("tempDir",file.name),"wb") as f: 
          f.write(file.getbuffer())         
        st.success("Saved File")
        print(cwd+file.name)
        file_dir= ("tempDir")
        
        
    def upload():
        file_name = os.path.join(file_dir, file.name)
        read_file(file_name)
        st.write (file_name)
        st.session_state["upload_state"] = "Saved successfully!"
        object_name_in_gcs_bucket = bucket.blob("gcp-bucket-destination-path"+ file.name)
        object_name_in_gcs_bucket.upload_from_filename(cwd+"/"+file.name)
       
       
    st.write("Youre uploading to bucket",bucketName)
    st.button("Upload file to GoogleCloud", on_click=upload)

if __name__ == "__main__":
    main()

我试过使用cwd命令导入文件的路径,也试过操作系统库的文件路径,但没有任何工作

guicsvcw

guicsvcw1#

你的代码中有一些变量,你知道它们代表什么。试试这个,或者确保你把每一个相关的信息添加到问题和代码片段中。

def main():
    file = st.file_uploader("Upload file")
    if file is not None:
        file_details = {"FileName":file.name,"FileType":file.type}
        st.write(file_details)
        
        file_path = os.path.join("tempDir/", file.name)
        with open(file_path,"wb") as f: 
          f.write(file.getbuffer())         
        st.success("Saved File")

        print(file_path)

    def upload():
        file_name = file_path
        read_file(file_name)
        st.write(file_name)

        st.session_state["upload_state"] = "Saved successfully!"
        object_name_in_gcs_bucket = bucket.blob("gcp-bucket-destination-path"+ file.name)
        object_name_in_gcs_bucket.upload_from_filename(file_path)
        
    st.write("Youre uploading to bucket", bucketName)
    st.button("Upload file to GoogleCloud", on_click=upload)

if __name__ == "__main__":
    main()

相关问题