Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| def filesystem(fex): | |
| # Get the file extension | |
| file_extension = fex.split('/')[-1].split('.')[-1] | |
| if file_extension in ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'tiff']: | |
| return {im: gr.Image(value=fex, visible=True, label='Selected Image'), | |
| cd: gr.JSON(visible=False), | |
| df: gr.Dataframe(visible=False), | |
| md: gr.Markdown(visible=False), | |
| txt: gr.Textbox(visible=False), | |
| zip: gr.File(visible=False), | |
| vid: gr.Video(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| elif file_extension == 'txt': | |
| with open(fex, 'r') as f: | |
| content = f.read() | |
| if len(content) == 0: | |
| content = "This is a blank textfile" | |
| return {txt: gr.Textbox(content, visible=True, label='Selected Textfile'), | |
| cd: gr.JSON(visible=False), | |
| df: gr.Dataframe(visible=False), | |
| im: gr.Image(visible=False), | |
| md: gr.Markdown(visible=False), | |
| zip: gr.File(visible=False), | |
| vid: gr.Video(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| elif file_extension == 'json': | |
| with open(fex, 'r') as f: | |
| content = f.read() | |
| if len(content) == 0: | |
| content = "This is a blank JSON file" | |
| return {cd: gr.JSON(value=content, visible=True, label='Code'), | |
| df: gr.Dataframe(visible=False), | |
| im: gr.Image(visible=False), | |
| md: gr.Markdown(visible=False), | |
| txt: gr.Textbox(visible=False), | |
| zip: gr.File(visible=False), | |
| vid: gr.Video(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| elif file_extension == 'csv': | |
| return {df: gr.Dataframe(value=fex, visible=True, label='Selected CSV file'), | |
| cd: gr.JSON(visible=False), | |
| im: gr.Image(visible=False), | |
| md: gr.Markdown(visible=False), | |
| txt: gr.Textbox(visible=False), | |
| zip: gr.File(visible=False), | |
| vid: gr.Video(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| elif file_extension == 'md': | |
| with open(fex, 'r') as f: | |
| content = f.read() | |
| if len(content) == 0: | |
| content = "This is a blank Markdown file" | |
| return {md: gr.Markdown(value=content, visible=True, label='Selected Markdown file'), | |
| cd: gr.JSON(visible=False), | |
| df: gr.Dataframe(visible=False), | |
| im: gr.Image(visible=False), | |
| txt: gr.Textbox(visible=False), | |
| zip: gr.File(visible=False), | |
| vid: gr.Video(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| elif file_extension == 'zip': | |
| return {zip: gr.File(value=fex, visible=True, label='Selected Zip file'), | |
| df: gr.Dataframe(visible=False), | |
| cd: gr.JSON(visible=False), | |
| im: gr.Image(visible=False), | |
| md: gr.Markdown(visible=False), | |
| txt: gr.Textbox(visible=False), | |
| vid: gr.Video(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| elif file_extension in ['mp4', 'wmv', 'mp3']: | |
| return {vid: gr.Video(value=fex, visible=True, label='Selected video file'), | |
| df: gr.Dataframe(visible=False), | |
| cd: gr.JSON(visible=False), | |
| im: gr.Image(visible=False), | |
| md: gr.Markdown(visible=False), | |
| txt: gr.Textbox(visible=False), | |
| zip: gr.File(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| elif file_extension in ['py', 'js', 'java', 'c', 'cpp', 'php', 'html', 'css', 'swift']: | |
| with open(fex, 'r') as f: | |
| content = f.read() | |
| if len(content) == 0: | |
| content = "This is a blank Code file" | |
| return {code: gr.Code(value=content, visible=True, label='Selected Code file'), | |
| df: gr.Dataframe(visible=False), | |
| cd: gr.JSON(visible=False), | |
| im: gr.Image(visible=False), | |
| md: gr.Markdown(visible=False), | |
| txt: gr.Textbox(visible=False), | |
| zip: gr.File(visible=False), | |
| vid: gr.Video(visible=False), | |
| } | |
| else: | |
| msg = fex + " - " + "This is an Unsupported file type at the moment." | |
| return {txt: gr.Textbox(value=msg, visible=True, label='Selected Textfile'), | |
| cd: gr.JSON(visible=False), | |
| df: gr.Dataframe(visible=False), | |
| im: gr.Image(visible=False), | |
| md: gr.Markdown(visible=False), | |
| zip: gr.File(visible=False), | |
| vid: gr.Video(visible=False), | |
| code: gr.Code(visible=False), | |
| } | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# <center> File Handling using the new gr.FileExplorer() Gradio Component </center>") | |
| with gr.Row(): | |
| fex1 = gr.FileExplorer(file_count='single') | |
| cd = gr.JSON(visible=False) | |
| df = gr.Dataframe(visible=False) | |
| im = gr.Image(visible=False) | |
| md = gr.Markdown(visible=False) | |
| txt = gr.Textbox(visible=False) | |
| zip = gr.File(visible=False) | |
| vid = gr.Video(visible=False) | |
| code = gr.Code(visible=False) | |
| fex1.change(filesystem, fex1, [cd, df, im, md, txt,zip, vid, code]) | |
| demo.launch(debug=True) #, height=800) |