Spaces:
Runtime error
Runtime error
| import re | |
| import gradio as gr | |
| import pandas as pd | |
| def parse_text(txt_file): | |
| # 将上传的文件名作为输入参数 | |
| file_name = txt_file.name | |
| filename_with_dot = file_name.rsplit('/', 1)[1] | |
| print(filename_with_dot) | |
| filename = filename_with_dot.split('.', 1)[0] | |
| print(filename) | |
| with open(file_name, "r") as f: | |
| # 读取上传文件中的内容 | |
| content = f.read() | |
| # 在这里进行文本解析 | |
| lines = content.split("\n") | |
| numbered_lines = [(i + 1, line) for i, line in enumerate(lines)] | |
| # 将解析结果转换为字符串输出 | |
| output_str = "" | |
| for num, line in numbered_lines: | |
| output_str += f"{num}. {line}\n" | |
| filename = filename.split('.', 0)[0] | |
| return filename, output_str | |
| def process_text(text): | |
| try: | |
| sentences = re.split(r'\d+\.', text) | |
| except Exception: | |
| try: | |
| sentences = re.split(r'\d+', text) | |
| except Exception: | |
| pass | |
| sentences = [s.strip() for s in sentences if s.strip()] | |
| return sentences | |
| def pd_form(sentences): | |
| rows = [] | |
| for i in range(len(sentences)): | |
| row_number = i + 1 | |
| description = sentences[i] | |
| row = { | |
| "镜号": row_number, | |
| "画面范例": '', | |
| "时长": '', | |
| "景别": '', | |
| "画面说明": description, | |
| "歌词": '', | |
| "备注": '', | |
| } | |
| rows.append(row) | |
| return rows | |
| def to_excel(t_file): | |
| text_file, name_file = parse_text(t_file)[1], parse_text(t_file)[0] | |
| output_file_name = name_file + '.xlsx' | |
| txt = process_text(text_file) | |
| rows = pd_form(txt) | |
| writer = pd.ExcelWriter(output_file_name, engine='xlsxwriter') | |
| df = pd.DataFrame(rows) | |
| df.to_excel(writer, index=False, sheet_name="Sheet1") | |
| writer.close() | |
| return output_file_name | |
| iface = gr.Interface( | |
| fn=to_excel, | |
| inputs=gr.inputs.File(label="请上传 txt 格式文件"), | |
| outputs=gr.File(label="下载 xlsx 格式文档"), | |
| title="txt - xlsx 分镜格式转换器", | |
| description="说明: 如果转换不成功,请重试几次") | |
| iface.launch() |