awacke1 commited on
Commit
e1f5da3
Β·
1 Parent(s): d62f7b5

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +82 -0
app.py ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import pandas as pd
3
+ import streamlit as st
4
+
5
+ # Function to list files with .csv and .txt extensions in the current directory
6
+ def list_files():
7
+ icon_csv = "πŸ“„ "
8
+ icon_txt = "πŸ“‘ "
9
+
10
+ current_directory = os.getcwd()
11
+ file_list = []
12
+ for filename in os.listdir(current_directory):
13
+ if filename.endswith(".csv"):
14
+ file_list.append(icon_csv + filename)
15
+ elif filename.endswith(".txt"):
16
+ file_list.append(icon_txt + filename)
17
+ return file_list
18
+
19
+ # Function to read a file
20
+ def read_file(file_path):
21
+ try:
22
+ df = pd.read_csv(file_path)
23
+ return df
24
+ except FileNotFoundError:
25
+ return "File not found."
26
+
27
+ # Function to delete a file
28
+ def delete_file(file_path):
29
+ try:
30
+ os.remove(file_path)
31
+ return f"{file_path} has been deleted."
32
+ except FileNotFoundError:
33
+ return "File not found."
34
+
35
+ # Function to write to a file
36
+ def write_file(file_path, data):
37
+ try:
38
+ data.to_csv(file_path, index=False)
39
+ return f"Successfully written to {file_path}."
40
+ except:
41
+ return "Error occurred while writing to file."
42
+
43
+ # Streamlit app
44
+ st.title("Question Set Import/Export Editor Downloader")
45
+
46
+ # File list
47
+ st.header("Files")
48
+ files = list_files()
49
+ for file in files:
50
+ st.write(file)
51
+
52
+ # File input and output
53
+ st.header("Edit Data")
54
+ file_path = st.text_input("Filename")
55
+ data = read_file(file_path)
56
+
57
+ if isinstance(data, pd.DataFrame):
58
+ st.dataframe(data)
59
+ st.write(f"Loaded {file_path}")
60
+
61
+ # Data editor
62
+ st.header("Edit Fields")
63
+ fields = ["ID", "Title", "Context", "Question", "AnswerText", "AnswerStart"]
64
+ new_data = {field: st.text_input(field) for field in fields}
65
+
66
+ # Add, delete, or save data
67
+ st.header("Actions")
68
+ add_data = st.button("Add Data")
69
+ delete_data = st.button("Delete Data")
70
+ save_data = st.button("Save Data")
71
+
72
+ if add_data:
73
+ data = data.append(new_data, ignore_index=True)
74
+ st.success("Data added.")
75
+
76
+ if delete_data:
77
+ data = data[data["ID"] != new_data["ID"]]
78
+ st.success("Data deleted.")
79
+
80
+ if save_data:
81
+ save_file(file_path, data)
82
+ st.success("Data saved.")