Spaces:
Runtime error
Runtime error
File size: 2,231 Bytes
bd1ab3b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
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() |