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) |